Was sind die Unterschiede zwischen einem Pointer und einer Referenz in C++?
Hallo Kollegen! Ich habe gerade angefangen, C++ nach Java und Python zu lernen, und bin bei Pointern und Referenzen verwirrt. Beides scheint es zu ermöglichen, mit Objekten ohne Kopieren zu arbeiten, aber ich verstehe nicht, wann man was verwenden soll.
Hier ist ein Beispiel aus meinem Code. Ich habe eine Funktion geschrieben, die die Werte zweier Variablen vertauscht. Zuerst habe ich versucht, Referenzen zu verwenden:
```cpp
void swap_ref(int &a, int &b) {
int temp = a;
a = b;
b = temp;
}
```
Dann habe ich erfahren, dass man dasselbe mit Pointern machen kann:
```cpp
void swap_ptr(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
```
Beide Varianten funktionieren. Aber mir ist aufgefallen, dass man bei Pointern überall Sternchen und Ampersands beim Aufruf setzen muss, bei Referenzen dagegen nicht. Außerdem habe ich gehört, dass Referenzen nicht