Avatar ·

Was ist der Unterschied zwischen einem Zeiger und einer Referenz in C++? Erklären Sie anhand von Beispielen

Hallo zusammen! Ich habe gerade angefangen, C++ zu lernen, und kann einfach nicht verstehen, was der Unterschied zwischen Zeigern und Referenzen ist. In Büchern steht, dass beide eine Möglichkeit sind, mit Speicheradressen zu arbeiten, aber sie verhalten sich unterschiedlich. Hier ist ein einfaches Beispiel. Ich kann einen Zeiger deklarieren und über ihn den Wert einer Variable ändern:
int a = 5;
int* ptr = &a;
*ptr = 10; // jetzt ist a = 10
Und genauso kann ich es mit einer Referenz machen:
int a = 5;
int& ref = a;
ref = 10; // auch a = 10
Das Ergebnis scheint gleich zu sein. Aber ich habe gehört, dass Referenzen nicht neu zugewiesen werden können, Zeiger hingegen schon. Und dass Referenzen sicherer sind. Aber warum? Und wann verwendet man was? Besonders verwirrt mich, dass man in Funktionen Parameter sowohl über Zeiger als auch über Referenzen übergeben kann. Welche Methode ist besser? Und gibt es Situationen, in denen man ohne Zeiger nicht auskommt, Referenzen aber nicht geeignet sind? Erklären Sie es bitte für einen Anfänger, möglichst mit Codebeispielen. Vielen Dank im Voraus! <<>>

Grundlegende Unterschiede