Pointer Verständnis



  • Hallo Forum!

    Ich habe eine Frage zu Pointern.
    Ein Pointer zeigt bekanntlich auf den Inhalt einer Variablen. 👍
    So die Theorie.
    Wie passiert aber nun dieses zeigen?
    Was passiert im Rechner?

    Für klärende Aussagen danke ich Euch!

    Zero_Clamping 😕



  • ein pointer zeigt nicht auf den inhalt sondern auf die adresse einer variabblen. erst wenn du diesen pointer dereferenzierst, erhaelst du als ausdruck den inhalt. wenn du nun einen pointer dereferenzierst, weiss der rechner anhand der adresse, auf die der pointer zeigt, wo er den inhalt finden kann.



  • Zero_Clamping schrieb:

    Hallo Forum!

    Ich habe eine Frage zu Pointern.
    Ein Pointer zeigt bekanntlich auf den Inhalt einer Variablen. 👍
    So die Theorie.
    Wie passiert aber nun dieses zeigen?
    Was passiert im Rechner?

    Für klärende Aussagen danke ich Euch!

    Zero_Clamping 😕

    Alle "Bytes" im Rechner sind durchnummeriert. Die Nummer eines Bytes nennt man Adresse.

    In einem Pointer wird also einfach nur die Adresse abgespeichert in dem die Variable steht.



  • man kann sich übrigens die Adresse einer Variablen anzeigen lassen.

    int main() {
      int a = 42;
      int *p = &a;
    
      cout << "Wert von a: " << a << "\nAdresse von a: " << &a
           << "\nWert von p (zeigt auf a): " << p << "\nDer Zeiger liegt an der Adresse: " << &p << endl;
    }
    


  • Assembler lernen, dann versteht man Pointer endgültig!



  • nicht ganz schrieb:

    ein pointer zeigt nicht auf den inhalt sondern auf die adresse einer variabblen

    Nö, das mit dem Inhalt war schon ganz gut so. Die Adresse, um an diesen Inhalt zu kommen, wird ja im Zeiger selbst abgespeichert. Man sollte eher noch anmerken, dass ein Zeiger irgendwohin zeigen kann, und nicht zwangsläufig auf den Inhalt einer Variablen. Deshalb sind sie auch mit Vorsicht zu geniessen.



  • Klar, deshalb stets eine Adresse zuweisen!

    Den anderen und Dir danke für die Tips.
    Die Sache mit dem Assembler lernen ist lustig,
    da sehe ich wahrlich, was passiert.



  • Artchi schrieb:

    Assembler lernen, dann versteht man Pointer endgültig!

    Dafuer muss man kein Assembler lernen. Man kann Pointer auch so verstehen lernen.

    mfg
    v R


Anmelden zum Antworten