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
    &b

    b ist hier ein simpler int*. wenn ichs ausführe bekommen ich als output (die drei werden hintereinander ausgegeben

    b=0x7fffd6878e7c
    *b=8
    &b=0x7fffd6878e70

    also 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.


Anmelden zum Antworten