char *s;
char buf [] = "This is a test";
s = strchr (buf, 't');
if (s != NULL)
printf ("found a 't' at %s\n", s);
printf("%c\n",*s);
printf("%c\n",*s++);
printf("%c\n",*s++);
printf("%c\n",*s++);
printf("%c\n",*s++);
Dieser Code gibt:Warum haben * s und * s ++ in der folgenden Situation den gleichen Wert?
found a 't' at test
t
t
e
s
t
Program ended with exit code: 0
Aus meiner Sicht * s sollte t
und * s ++ sollte e
sein sein. Aber warum haben sie denselben Wert in diesem Code?
Ist "Ihre Sicht" auf etwas basiert? –
Postincrement bedeutet, führen Sie dann Inkrement. Try * (++ s) – sircodesalot
s bedeutet die Anfangsadresse von String s, also sollte * s der Wert sein, der in der Adresse gespeichert ist. s ++ sollte die nächste Position von der Anfangsadresse von String s sein. –