Richtig verstanden? (Referenzen und Zeiger)



  • Moin,
    erster Beitrag hier im Board, hallo erstmal 😃

    Ich habe insgesamt fast 2 Tage lang versucht diesen Abschnitt zu kapieren, irgendwie fehlte mir da die Logik, aber jetzt habe ich soweit ich das verstanden habe ein kleines Programm geschrieben, das verschiedene Werte von Zeigern und Referenzen ausgibt (zur Übung).
    Und ich will von euch wissen, ob ich es richtig beschrifte und evtl. mache. Wenn etwas fehlt - bitte sagen. 🙄

    #include <iostream> 
    using namespace std; 
    int main() 
    { 
      int  Variable = 5, *Pointer; 
      Pointer            = &Variable; 
      int &Referenz      = Variable; 
      cout << "Inhalt des Pointers auf Variable:    " << *Pointer   << "\n"; 
      cout << "Adresse des Pointers auf Variable:   " << &Pointer   << "\n"; 
      cout << "Inhalt der Referenz auf Variable:    " << Referenz   << "\n"; 
      cout << "Adresse der Referenz auf Variable:   " << &Referenz  << "\n"; 
      return 0; 
    }
    


  • Das ist kein ANSI-C!



  • Abgesehen davon, dass dies (wie tobidope schon sagte) kein ANSI-C, sondern
    C++ ist, ist alles richtig, du scheinst es also verstanden zu haben 🙂

    gruß,
    walker



  • Nö, die 4. Zeile ist falsch, man kann nicht die Adresse einer Referenz bestimmen. Es wird die Adresse der Variablen angezeigt.



  • Da schließ ich mich Bashar an.



  • Hi,
    sorry, dass ich falsch gepostet habe, waren mir wohl zu viele Foren auf einmal... 🙄
    Danke für die Antworten, die Zeile 4 habe ich nur falsch formuliert, eine Referenz nimmt ja keinen Speicher, es wird die Adresse der Variablen, auf die die Referenz angewendet wurde ausgegeben. So, stimmt's? 😃



  • #include <iostream>  
    using namespace std;  
    int main()  
    {    // @Bashar: was ist in der vierten Zeile falsch???
      int  Variable = 5, *Pointer;  
      Pointer            = &Variable;  
      int &Referenz      = Variable;  
    
      cout << "Inhalt des Pointers auf Variable:    " << *Pointer   << "\n";  
      cout << "Adresse des Pointers auf Variable:   " << &Pointer   << "\n";  
         // meintest du auch, was du geschrieben hast. es ist die Adresse des Pointers,
         // nicht die Adresse des Objekts, auf den er Zeigt.
    
      cout << "Inhalt der Referenz auf Variable:    " << Referenz   << "\n";  
      cout << "Adresse der Referenz auf Variable:   " << &Referenz  << "\n";  
         // das ist die Adresse des referenzierten Objekts.
      return 0;  
    }
    


  • Helium schrieb:

    { // @Bashar: was ist in der vierten Zeile falsch???

    Schlecht geschlafen? Jeder ausser dir hat verstanden, dass ich die vierte Ausgabezeile meinte.


Anmelden zum Antworten