Unterschied zwischen Zeiger und Referenz



  • Hallo

    Ich habe in meinem C++ in 21 Tagen Buch heute Zeiger und Referenz durchgenomen nun ist mir da was unklar:

    1. Zeiger = Zeigen auf die Speicheradresse und können immer wieder neu Belegtwerden

    Referenz = Zeigen auch auf eine Speicheradresse kann man aber nur ein mal Belegen

    Ist das so Richtig?

    2. Und kann mir mal jemand erklären was mir Referenzen auf Objekten gemeint ist.



  • Hi,

    Referenz = Zeigen auch auf eine Speicheradresse kann man aber nur ein mal Belegen

    Was meinst du mit 'nur einmal anlegen'?

    Es kann keine 0-Referenzen geben, soll heissen, eine Referenz muss immer gueltig sein.
    Sowas ist nicht moeglich und wird vom Compiler entsprechend angemeckert:

    int i = 5;
    int l = 6;
    int &j;   //nicht moeglich! es kann keine ungueltigen referenzen geben
        j = i; 
    int &k = i; //referenziert i
        k = l; //auch das ist moeglich. k referenziert jetzt l
    

    2. Und kann mir mal jemand erklären was mir Referenzen auf Objekten gemeint ist.

    Beispiel:

    int DoSomethingWithString(std::string &StrObj)
    {
       //StrObj ist eine Referenz auf ein std::string-Objekt
    }
    

    mfg
    v R



  • virtuell Realisticer schrieb:

    int i = 5;
    int l = 6;
    int &k = i; //referenziert i
        k = l; //auch das ist moeglich. k referenziert jetzt l
    

    Muss der letzte Kommentar nicht eher "i wird der Wert von l zugewiesen" heissen?



  • SG1 schrieb:

    virtuell Realisticer schrieb:

    int &k = i; //referenziert i
        k = l; //auch das ist moeglich. k referenziert jetzt l
    

    Muss der letzte Kommentar nicht eher "i wird der Wert von l zugewiesen" heissen?

    Genau. Man kann Referenzen nicht nachträglich "umzeigern".



  • Oh, ja, sorry mein Fehler

    mfg
    v R


Anmelden zum Antworten