LINUX.ORG.RU

int main(int argc, char *argv)


0

0

VOSEM MOZETE OBJASNIT MNE ZA4EM NUZEN: parametr ARGC i ARGV. 4TO ZNA4IT massiv simvolnih ukozatekej (toko nedavno na4al izu4at Cи, v knige vse sliskom zaumnim jazikom tak, 4to mnogoe ne ponjatno). vot predlozenie perevedite plz... Parametr ARGC imeet tselij tip,i ego zna4enie vsegda budet ne mense 1, poskolku pervim argumentom vsegda javlajetsja imja programmi.Parametr ARGV dolzen bit objavlen kak massivsimvolnih ukazatelej, v kotorom kazdij element ukazivaet na argument v komandnoi stroke.


Какое слово перевести? Символьный указатель -- это (char*), а массив -- это массив. Если ещё не дочитал до массивов -- забей на эти argc и argv.

Только в C не принято argv объявлять массивом, это C++'ный подход:

C: int main( int argc, char** argv )

C++: int main( int argc, char* argv[] )

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от watashiwa_daredeska

C: int main( int argc, char** argv )

C++: int main( int argc, char* argv[] ) v 4em raznitsa? DLja 4ego nuzen massiv? *JA ponimaju moi voprosi mogut pokozatsja glupimi no vseze postarajtes pomo4...

ban
() автор топика
Ответ на: комментарий от ban

Зайди-ка ты для начала на http://www.translit.ru/ , а потом уже вопросы пиши.

p.s. заебал транслит.

p.p.s. разница в том, что в первом случае есть указатель на указатель на char, а во втором -- массив указателей на char. А на вопрос для чего нужны массивы найдёшь ответ в любой научно-популярной литературе для домохозяек.

eRazor ★★★
()

Я сам тоже недавно Си учить начал... Очень советую прочитать книжку Кернигана и Ритчи. Я скачивал тут: http://linux.amillo.net/files/kernigan.zip Там, вроде, все ясно и понятно описано... Хотя я тоже не все понимаю, но тогда нужно хотя бы проглядеть, а если потом понадобиться, то вернешься и перечитаешь. По-поводу, массива указателей то я сразу все понял...

argc - это количество переданных в командной строке параметров.
argv - это массив, в котором содержаться сами эти параметры.

argc всегда больше 1, т.к. самый первый элемент это имя программы.

proga -n 6

printf("%s\n", argv[0]); /* напечатает 'proga' */
printf("%s\n", argv[1]); /* напечатает '-n'*/
printf("%d\n", atoi[2]); /* напечатает число 6 */

Ф-ция atoi (Trgument TO Integer) переводит число содержащиеся в строке в тип int. atoi определена в stdlib.h

Ну, да впрочем я что-то отвлекся :)))

В примере: argc будет равно 3... Вопросы?!

php-coder ★★★★★
()
Ответ на: комментарий от php-coder

> printf("%d\n", atoi[2]); /* напечатает число 6 */

Ошибся: printf("%d\n", atoi(argv[2]));

php-coder ★★★★★
()
Ответ на: комментарий от eRazor

> Строго говоря разница между указателем и массивом имеется.

В данном конкретном случае - нет. Да и вообще, с этими их динамическими массивами ([]), разницы с указателем никакой. Так, eye candy только.

watashiwa_daredeska ★★★★
()
Ответ на: комментарий от php-coder

> argc всегда больше 1, т.к. самый первый элемент это имя программы.

>= 1

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.