Dlaczego * p ++ różni się od * p + = 1?
Rozważać:
void foo1(char **p) { *p++; }
void foo2(char **p) { *p += 1; }
i
char *s = "abcd";
char *a = s;
foo1(&a);
printf("%s", a); //abcd
ale jeśli używamfoo2()
zamiast:
char *a = s;
foo2(&a);
printf("%s", a); //bcd
Czy ktoś może to wyjaśnić?