const int *const ptr; äquvalent mit einer Referenz?
-
Frage == Titel
Danke im Voraus!
-
Nein.
Aber die Frage könnte etwas genauer sein. Worauf willst du hinaus?
-
Zeiger != Referenz
-
Hallo!
Ich möchte wissen ob der Zeiger:const int *const ptr;
äquivalent mit einer Referenz ist?
Denn dieser Zeiger darf nur auf ein Objekt zeigen und er darf nur auf einen Speicherbereich verweisen.
z.B.int var = 2; const int *const ptr = &var; ++ptr; //Fehler, da Zeiger konstant. *ptr = 10; //Fehler, da const int
Eine Referenz darf auch nur einmal ein Objekt referenzieren, somit habe ich mir gedacht ob dieser Zeiger nicht äquvalent mit einer Referenz ist.
-
Sorry, habe ich vergessen: ich meine eine Referenz die eine konstante referenziert.
Ist das verständlich?
-
die antwort ist trotzdem nein. erstens bedingt der einsatz von zeigern, dass das referenzierte objekt auch eine adresse hat. zweitens ist es möglich diesen zeiger selbst zu referenzieren, oder seinen 'wert' zu bestimmen; beides ist mit referenzen weder möglich noch sinnvoll.
const int var = 2; const int *const ptr = &var; const int& ref = var; ++ptr; //Fehler, da Zeiger konstant. *ptr = 10; //Fehler, da const int const int *const* const ptr2ptr = &ptr; //ok const int& ref2 = ref; //ok, aber andere semantik const int&& ref2ref = ref; //fehler, referenz auf referenz nicht möglich
-
const foo* const p_bar = 0; // OK const foo& r_bar = 0; // Fehler
-
Hallo!
Sieh dir am besten das Cpp-Tutorial von http://tutorial.schornboeck.net/ an. Referenzen und Zeiger sind wirklich sehr gut erklärt!
MfG CSS