Deklaration von Variablen der Typen Referenz und Pointer



  • Hallo,

    ich habe folgende Frage:

    Kann man einen Pointer auf eine Referenz deklarieren? Also ich weiß, dass es Referenzen auf Referenzen gibt und Pointer auf Pointer. Ebenso, dass es nicht geht, eine Referenz auf einen Pointer zu deklarieren.

    Folgenden Code habe ich, allerdings bin ich mir nicht sicher, ob das auch so geht:

    Pointer auf Referenz

    int par = 17;
    int& ref3 = par;
    int* point1 = &ref3;
    

    Also hier habe ich ja eine Referenz, die auf par zeigt bzw. ein Synonym dafür ist. Allerdings zeigt der Pointer ja letztlich nur auf die Speicheradresse der Referenz ref3 und nicht auf die Referenz selber, oder?

    Bin mir da im Unklaren und somit auch nicht sicher, ob es möglich ist einen Pointer auf eine Referenz deklarieren zu können.



  • Man kann Referenzen auf alle Typen erstellen. Es gehen also auch Referenzen auf Pointer. Was aber nicht geht sind Pointer auf Referenzen und Referenzen auf Referenzen.



  • venomicious schrieb:

    Kann man einen Pointer auf eine Referenz deklarieren?

    Nein. Zeiger gibt es nur für Objekte und Funktionen (inklusive Elementzeiger). Referenzen sind laut C++ Standarddefinition keine "Objekte".

    venomicious schrieb:

    Also ich weiß, dass es Referenzen auf Referenzen gibt

    Die gibt es aber nicht.

    venomicious schrieb:

    und Pointer auf Pointer. Ebenso, dass es nicht geht, eine Referenz auf einen Pointer zu deklarieren.

    Doch, das geht. Eine Zeigervariable ist ein Objekt.

    int t = 23;
    int u = 42;
    int* p = &t;
    int*& r = p; // r ist eine Referenz auf den Zeiger p
    r = &u;
    cout << *p;
    

    venomicious schrieb:

    Folgenden Code habe ich, allerdings bin ich mir nicht sicher, ob das auch so geht:

    Pointer auf Referenz

    int par = 17;
    int& ref3 = par;
    int* point1 = &ref3;
    

    Der Zeiger "point1" zeigt auf die int-Variable "par".

    Gruß,
    SP


Anmelden zum Antworten