Почему argv [] объявлен как const? - PullRequest
1 голос
/ 13 декабря 2010

В Objective-C, почему argv [] объявлен как const:

int main(int argc, const char *argv[]) { } 

Ответы [ 2 ]

5 голосов
/ 13 декабря 2010

Поскольку const означает, что значение (char *) является неизменяемым, аргументы которого являются.

После передачи аргументов программы в программу их значения не должны изменяться.

Думайте об этом массиве как о массиве const char * , который, в свою очередь, является массивом char с.

Итак, допустим, вы передали строку "приветworld "для вашей программы в качестве аргументов, argv будет выглядеть так:

{{'h', 'e', 'l', 'l', 'o', '\0'}, {'w', 'o', 'r', 'l', 'd', '\0'}}
0 голосов
/ 13 декабря 2010

Поскольку это облегчает написание оболочки / программы запуска / etc, в то время как большинство программ не намного усложняется.

И создатели 'C' думали о том, чтобы упростить работу разработчиков ОС, особенно своих собственных!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...