Speicherbereiche bei Pointern
-
Hi,
Hab da eine Uni Aufgabe die mich aktuell etwas verwirrt. Also es is Code gegeben und da werden von nem Integer pointer verschiedenste ausgaben gemacht.
b
*b
&bb ist hier ein simpler int*. wenn ichs ausführe bekommen ich als output (die drei werden hintereinander ausgegeben
b=0x7fffd6878e7c
*b=8
&b=0x7fffd6878e70also ich weis das das erste die addresse vom pointer ist. das zweite is der reingespeicherte wert. auch klar, aber was zur hölle is das dritte ?
-
b ist die Adresse, wohin der Pointer zeigt. (Nicht das gleiche wie die Adresse des Pointers!).
*b ist der Wert, der an der Adresse liegt, auf den der Pointer zeigt.
&b ist die Adresse des Pointers selber. (Ein Pointer wird ist ja auch eine Variable mit einer Adresse).
-
ah ok. alles klar
daher wenn ich mit
int x = 0; b = &x;
den pointer woanders hinzeigen lasse verändert sich nicht die adresse des pointers sondern nur die adresse wo er hinzeigt oder ?
-
Gast123453423 schrieb:
daher wenn ich mit
int x = 0; b = &x;
den pointer woanders hinzeigen lasse verändert sich nicht die adresse des pointers sondern nur die adresse wo er hinzeigt oder ?
Genau
PS:
Wenn du statt code-Tags cpp-Tags verwendest, dann kann man den Code noch etwas besser Lesen mit dem Syntax-Highlighting.