argc ve argv
- C kursu
- Orta seviye
- Ders 88/116
- 4 dk
argc ve argv ile komut satırı argümanlarını öğrenirsin.
argc ve argv
C programında komut satırı argümanları, main fonksiyonuna iki parametre ile gelir: argc ve argv. argc, argüman sayısını tutan bir tamsayıdır; argv, her argümanı gösteren bir dize işaretçi dizisidir.
İlk argüman argv[0] her zaman programın adıdır. Gerçek kullanıcı argümanları argv[1]'den başlar. Örneğin ./prog elma armut yazarsan argc 3 olur; argv[1] "elma", argv[2] "armut" olur. Bu sayede programın davranışını çalışma anında değiştirebilirsin.
main imzası
Argümanları almak için main'in imzasını int main(int argc, char *argv[]) biçiminde yazarsın. Burada argv, char * türünden bir dizidir; her eleman bir dizeyi gösterir.
Parametre adları serbesttir; int main(int ac, char **av) da yazılabilir. Önemli olan türlerin sırasıdır: önce int, sonra char * dizisi. Parametre vermeden int main(void) yazarsan program argümanlara erişemez. Çoğu araç zinciri argümanları yine de belleğe koyar; ama standart yol imzayı açıkça yazmaktır.
Uygulama argc değerini yazdır
int main(int argc, char *argv[]) imzasını yaz. printf ile argc değerini "argc=%d\n" biçiminde yazdır. return 0 ile bitir.
Başlangıç kodu
#include <stdio.h>
// main imzasını argc ve argv ile yaz
// argc değerini yazdır
int main(void) {
return 0;
}Örnek çözüm
#include <stdio.h>
int main(int argc, char *argv[]) {
printf("argc=%d\n", argc);
return 0;
}Beklenen çıktı
argc=1
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 argc neyi tutar?
- Argüman sayısını Doğru cevap
- İlk argümanın adresini
- Programın dönüş kodunu
- Dize uzunluğunu
Açıklama: argc, komut satırından gelen argüman sayısını tutar.
2 argc değerini yazdır
printf("argc=%d
", ____);
printf("argc=%d
", argc);
Açıklama: argc bir tamsayıdır; %d ile yazdırılır.
3 argc/argv bölümlerini eşle
| Kavram | Anlamı |
|---|---|
argc |
Argüman sayısı |
argv[0] |
Program adı |
argv[1] |
İlk kullanıcı argümanı |
char *argv[] |
Dize işaretçi dizisi |