Kurze Frage zu Pointer
-
Hallo,
hab ne Frage zu folgendem Code
int a=40, b=50, c=80; float d=a/c; int *pa; pa=&a; *pa+=b++; *pa++; c=b; b=c;
Da kommt dann folgendes raus a=90, b=51, c=51 und d=0
das ist mir auch soweit klar nur versteh ich nicht warum a nicht 91 ist.
Mir ist schon klar, dass es in Zeile 5 auf 90 gesetzt wird.
Aber in Zeile 6 wird doch dann der pointer, der auf a zeigt nochmals erhöt. Warum hat das keine Auswirkung?Danke
-
Richtig, der Pointer wird erhöht. Nicht das, worauf er zeigt.
Es kommt auf die Rangfolge der Operatoren an.*pa++; ist wie *(pa++);
pa zeigt dann nicht mehr auf a(*pa)++; ist das, was du vermutest.
-
Da kommt gar nix raus!
-
samwin schrieb:
Aber in Zeile 6 wird doch dann der pointer, der auf a zeigt nochmals erhöt. Warum hat das keine Auswirkung?
Weil der Pointer erhöht wird, wie du schon richtig erkannt (geraten?) hast und nicht der Inhalt, auf den der Pointer zeigt.
-
vielen dank - jetzt ist es mir klar