Unterschied zwischen *p++ & p++?
-
Hi,
gibt es eigentlich einen Unterschied zischen *p++ und p++ in folgendem Zusammenhang:
#include <stdio.h>
int main(void)
{
int var = 10;
int *p = &var;*p++;
printf("%p", p);p++;
printf("%p", p);return 0;
}In beiden Fällen wird die Adresse um 4 erhöht. Bei der einen Variante fehlt der Stern - bei der anderen nicht. Gibt es einen Unterschied??
-
Okay, meine Überlegen ist, wenn man einen * dazuschreibt, wird die Adresse zusätzlich noch derefenziert. Dies ergibt allerdings nur dann Sinn, wenn man den Wert z.B. ausgibt.
-
Pointer-to-Pointer-Hasser schrieb:
Okay, meine Überlegen ist, wenn man einen * dazuschreibt, wird die Adresse zusätzlich noch derefenziert. Dies ergibt allerdings nur dann Sinn, wenn man den Wert z.B. ausgibt.
exakt.
++ hat eine staerke bindung als *
*p++
ist also das selbe wie
*(p++)
bzw. eigentlich ja:
*p;
p=p+1;sprich: zuerst einmal den wert von *p returnen und dann p um 1 erhoehen.