argc dan argv
Baca argumen program.
argc dan argv adalah pelajaran C Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C Academy mencakup 4 pelajaran total.
Program menerima argumen
Saat menjalankan program dari terminal, Anda dapat meneruskan kata-kata tambahan yang disebut argumen baris perintah.
C meneruskannya ke main melalui dua parameter: argc (jumlah argumen) dan argv (vektor argumen).
#include <stdio.h>
int main(int argc, char *argv[]) {
printf("This program received %d arguments\n", argc);
return 0;
}Signatur main
Bentuk lengkap main adalah:
int main(int argc, char *argv[])
argc adalah jumlah argumen. argv adalah array penunjuk string, satu untuk setiap argumen.
#include <stdio.h>
int main(int argc, char *argv[]) {
printf("argc = %d\n", argc);
return 0;
}argv[0] adalah nama program
Elemen pertama, argv[0], adalah nama (atau jalur) yang digunakan untuk menjalankan program.
Itulah sebabnya argc setidaknya bernilai 1 meskipun pengguna tidak memberikan argumen tambahan.
#include <stdio.h>
int main(int argc, char *argv[]) {
printf("Program name: %s\n", argv[0]);
return 0;
}Mencetak semua argumen
Anda dapat melakukan perulangan dari indeks 0 hingga argc - 1 untuk mengunjungi setiap string argumen dalam argv.
#include <stdio.h>
int main(int argc, char *argv[]) {
for (int i = 0; i < argc; i++) {
printf("argv[%d] = %s\n", i, argv[i]);
}
return 0;
}argv diakhiri dengan null
Menurut standar C, argv[argc] dijamin merupakan penunjuk NULL.
Artinya, Anda dapat melakukan perulangan hingga menemukan NULL alih-alih menggunakan argc, meskipun penghitungan dengan argc lebih umum digunakan.
#include <stdio.h>
int main(int argc, char *argv[]) {
char **p = argv;
while (*p != NULL) {
printf("%s\n", *p);
p++;
}
return 0;
}Argumen selalu berupa string
Setiap argumen diterima sebagai string, bahkan angka. Jika pengguna memberikan 42, Anda menerima teks "42", bukan bilangan bulat.
Anda harus mengonversinya sendiri dengan fungsi seperti atoi atau strtol.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
if (argc > 1) {
int n = atoi(argv[1]);
printf("Number plus one is %d\n", n + 1);
} else {
printf("Pass a number\n");
}
return 0;
}Memeriksa jumlah argumen
Selalu verifikasi argc sebelum membaca argv[i]. Mengakses indeks yang melebihi argumen yang diberikan merupakan perilaku yang tidak terdefinisi.
Pemeriksaan yang umum dilakukan adalah memastikan jumlah argumen mencukupi dan mencetak pesan penggunaan jika tidak.
#include <stdio.h>
int main(int argc, char *argv[]) {
if (argc < 2) {
printf("Usage: %s <name>\n", argv[0]);
return 1;
}
printf("Hello, %s!\n", argv[1]);
return 0;
}Menggunakan kode keluar yang bukan nol
Jika argumennya salah, kembalikan nilai bukan nol dari main untuk memberi tahu shell bahwa terjadi kegagalan.
Menurut konvensi, 0 berarti berhasil, sedangkan nilai lainnya berarti terjadi kesalahan.
#include <stdio.h>
int main(int argc, char *argv[]) {
if (argc != 3) {
printf("Need exactly 2 arguments\n");
return 1;
}
printf("Got both arguments\n");
return 0;
}Menjumlahkan argumen numerik
Contoh praktis: jumlahkan semua angka yang diberikan pada baris perintah dengan mengonversi masing-masing angka menggunakan atoi, lalu mengakumulasikannya menjadi total.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int sum = 0;
for (int i = 1; i < argc; i++) {
sum += atoi(argv[i]);
}
printf("Sum = %d\n", sum);
return 0;
}Notasi argv alternatif
Anda mungkin melihat char **argv, bukan char *argv[]. Sebagai parameter fungsi, keduanya memiliki arti yang sama: penunjuk ke penunjuk string pertama.
Keduanya memungkinkan Anda menggunakan indeks seperti argv[i].
#include <stdio.h>
int main(int argc, char **argv) {
if (argc > 1)
printf("First arg: %s\n", argv[1]);
return 0;
}Menggemakan kembali argumen
Perintah echo klasik cukup mencetak argumennya. Berikut versi minimal yang menggabungkannya dengan spasi.
#include <stdio.h>
int main(int argc, char *argv[]) {
for (int i = 1; i < argc; i++) {
printf("%s", argv[i]);
if (i < argc - 1) printf(" ");
}
printf("\n");
return 0;
}Pemeriksaan Cepat
Uji pemahaman Anda tentang argc dan argv.
Rangkuman
Anda telah mempelajari cara program membaca masukan baris perintah:
main(int argc, char *argv[])menerima jumlah dan lariknya.- argv[0] adalah nama program; argumen sebenarnya dimulai pada indeks 1.
argv[argc]adalah NULL.- Argumen selalu berupa string; konversikan angka dengan
atoidan validasikanargcterlebih dahulu.
Belajar C dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 39
- Pelajaran
- 144
Pertanyaan yang Sering Diajukan
Apakah pelajaran “argc dan argv” gratis?
Ya — teks lengkap “argc dan argv” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C Academy, upgrade ke CoddyKit PRO. Kursus C Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “argc dan argv”?
Baca argumen program. Kamu berlatih C Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai C Academy?
Tidak diperlukan pengalaman sebelumnya. C Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “argc dan argv” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran C Academy ini?
Ya. Setiap pelajaran C Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- argc dan argv
- Parsing Opsi
- getopt
- Membangun Alat CLI