C\C++ dillərində int main(argc,char* argv[]) şəklində yazırıq.bəs nəyə görə argv[] arrayini pointer olaraq qeyd edirik. onsuzda array öz-özlüyündə pointerdə niyə görə bu arqumenti pointer olaraq qeyd edirik?daha aydın desək bu cür də ifadə etmək olar
int main(argc,char **argv). bu şəkildə də yazmaq olar nəyə görə argv argumenti mütləq pointer tipində olmalıdır?
Verilmiş cavablar və yazılan şərhlər (3 cavab var)
2
Burda izah olunub.
4
Salam. Mən belə başa düşdüm ki, sizin sualınız argc və argv arqumentlərinin məqsədləri yox, argv arqumentinin tipi ilə bağlıdır. argv -nin tipi char *[] və ya char ** kimi göstərili. Sizin sualınız belədir ki, niyə char [] və ya char * tiplərindən istifadə olunmur. Bu iki tipin fərqini anlamağa çalışaq. Mən izahı daha başadüşülən olsun deyə int tipi üzərindən verəcəm, char tipi də analojidir.
int tipindən hər-hansı bir x dəyişəni elan edək:
indi isə int tipindən hər-hansı p adlı göstərici elan edək:
indi int tipindən 10 elementdən ibarət y adlı array elan edək:
Göstəricilər ilə arrayin əlaqəsini nəzərə alıb deyə bilərik ki, y -in tipi ilə p -nin tipi eynidir yəni int *
İndi isə sizin üçün əhəmiyyətli məqam, int tipindən olan 10 göstərici saxlayan hər-hansı z arrayi elan edək:
Burada da arraylərlə göstəricilərin əlaqəsini nəzərə alsaq z arrayinin tipini int ** kimi yaza bilərik, yəni göstərici tipli göstərici. Bu göstəricilərlə bağlı ən çətin hissələrdən biridir.
Qayıdaq sizin suala. char *s; hər-hansı sətirdir, başqa sözlə simvollar arrayi. argv isə səritlər arrayi dir. Buna görə yazırıq char * argv[]; arraylərin göstəricilərlə əlaqəsin nəzərə alıb bunu char **argv kimi də yaza bilərik.
0
Sualimi cavablandirdiginiz ucun tesekkur edirem
Sual verin
Cavab verin