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