Warum funktioniert die Initialisierung von C++ - Referenzen ohne den "address-of" -Operator (&)?
Ist die Zuordnung von Objekt mit einem Typ A
zu einer Referenz vom Typ A&
nicht falsch?
Sollte bei der Zuweisung nicht der Operator "&" auf der rechten Seite verwendet werden?Initialisieren einer C++ - Referenz - warum nicht den Adressoperator verwenden?
int var = 2
int& ref = var //why can we assign var of type 'int' to ref of type 'int&'?
int& ref = &var //shouldn't it be like that, so that we will assign the ADRESS to the reference?
EDIT: Um es zusammenzufassen:
- Referenzen alternative Namen für Objekte sind.
- Der Typ der Referenzen wird erstellt, indem '&' an den Typ des referenzierten Objekts angehängt wird.
- Verweise sind in jedem Kontext identisch mit dem Verweisobjekt.
- Sie speichern den Speicher des Objekts nicht als Zeiger, das Vorhandensein des "Adresse-von" -Operators "&" war hier irreführend.
Weil es kein Zeiger ist. –
"* wieso können wir var vom Typ' int' auf ref vom Typ 'int &' 'zuweisen?" Wenn das eine echte Frage ist, dann muss ich wirklich mit [einem guten Buch] anfangen (http: // stackoverflow .com/q/388242/636019). – ildjarn
Ja, ich lese ein Buch und versuche gerade die Gründe dafür zu verstehen, warum die Referenzen und Zeiger in C++ existieren, aber nicht in C. Überraschenderweise ist das Internet voll mit Erläuterungen zu Zeigern und Speicherrelationen, aber nicht zu Referenzen. – Skip