C++ Referenzen: Konzepte & Unterschiede zu Pointern
Referenzen vs. Pointer
Drei wesentliche Unterschiede:
- Keine NULL-Referenzen – Referenz muss immer auf gültigen Speicher verweisen.
- Unveränderliche Bindung – Einmal initialisiert, kann Referenz nicht auf anderes Objekt zeigen. Pointer können umgebunden werden.
- Initialisierungspflicht – Referenz muss bei Erstellung initialisiert werden. Pointer können später initialisiert werden.
Referenzen erstellen
Variable = Label an Speicherstelle. Referenz = zweites Label an derselben Stelle. Zugriff über beide Namen möglich.
int i = 17;
int& r = i; // r ist int-Referenz, initialisiert mit i
& in Deklaration als „Referenz“ lesen.
Beispiel
#include <iostream>
using namespace std;
int main() {
int i; double d;
int& r = i;
double& s = d;
i = 5;
cout << "Value of i: " << i << endl;
cout << "Value of i reference: " << r << endl;
d = 11.7;
cout << "Value of d: " << d << endl;
cout << "Value of d reference: " << s << endl;
return 0;
}
Ausgabe:
Value of i: 5
Value of i reference: 5
Value of d: 11.7
Value of d reference: 11.7
Hauptanwendungsbereiche
| Nr. | Konzept & Beschreibung |
|---|---|
| 1 | Referenzen als Parameter – Sicherer Parameterübergabe (Call by Reference) als Pointer. |
| 2 | Referenz als Rückgabewert – Funktion kann Referenz zurückgeben wie jeden anderen Typ. |
C Sprache
- C++-Datentypen verstehen: Grundlagen, Modifizierer und Best Practices
- C++-Operatoren meistern: Ein vollständiger Leitfaden mit praktischen Beispielen
- C++-Kommentare: Best Practices für lesbaren, wartbaren Code
- C++-Konstruktoren verstehen: Standard-, Parameter- und Kopierkonstruktor erklärt
- C++ Klassentemplates meistern: Ein praktischer Leitfaden
- C++ Programmiersprache: Überblick & Kernfeatures
- C++ Konstanten & Literale: Typen, Syntax & Best Practices
- C++ Operatoren: Typen, Nutzung & Best Practices
- C++ Numerische Typen: Praktischer Leitfaden
- C++ Referenzen: Konzepte & Unterschiede zu Pointern