Warum unterscheidet sich * p ++ von * p + = 1?

Erwägen:

void foo1(char **p) { *p++; }
void foo2(char **p) { *p += 1; }

und

char *s = "abcd";
char *a = s; 
foo1(&a); 
printf("%s", a); //abcd

aber wenn ich benutzefoo2() anstatt:

char *a = s; 
foo2(&a); 
printf("%s", a); //bcd

Kann das jemand erklären?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage