verstehen Ich habe argv [] als char * definiert. Verwenden Sie die folgenden printf-Anweisungen:Die tiefgründigen Operatoren Dereferenzierung, Adressierung und Array in 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]); //
Es ist das letzte, das ich nicht verstehe. Was bedeutet es, *argv[1]
zu drucken? Warum ist das nicht dasselbe wie *argv[1][0]
und wie kommt es, dass Sie printf("%s\n",*argv[1]);
nicht ausdrucken können. Auch, warum ist &*argv[1]
eine andere Adresse als &argv[1]
?
Es kann Ihnen helfen, die ['char *' Tag-Seite] (http://stackoverflow.com/tags/char-pointer/info) zu lesen. Vielleicht auch [diese Frage] (http://stackoverflow.com/questions/3024197/what-does-int-argc-char-argv-mean) bezüglich 'argc' und' argv'. – einpoklum
Es ist kein Problem mit dem Verständnis char *, sondern Zeiger – user3655463
@ user3655463: Sehen, wie OP dereferenzieren wollte 'argv [1] [0] ', stimme ich nicht zu. – einpoklum