У меня есть argv [], определяемый как char *. Использование следующих отчетов:Понимание операторов разыменования, адресов и операторов массива в C
printf("%s\n",argv[1]); // prints out the entire string
printf("%p\n",&argv[1]); // & -> gets the address
printf("%c\n",argv[1][0]);// prints out the first char of second var
printf("%c\n",*argv[1]); //
Это последний, который я не понимаю. Что означает печать *argv[1]
? почему это не так, как *argv[1][0]
, и почему вы не можете распечатать printf("%s\n",*argv[1]);
. Кроме того, почему &*argv[1]
другой адрес, то &argv[1]
?
Это может помочь вам прочитать страницу тега ['char *'] (http://stackoverflow.com/tags/char-pointer/info). Возможно также [этот вопрос] (http://stackoverflow.com/questions/3024197/what-does-int-argc-char-argv-mean) относительно 'argc' и' argv'. – einpoklum
Это не проблема с пониманием char *, но указатели – user3655463
@ user3655463: Увидев, как OP хотел разыменовать 'argv [1] [0]', я не согласен. – einpoklum