Hi,
kann mir jemand sagen, ob es irgendwelche "zwingenden Vorschriften" gibt, wann man an Funktionen Referenzen oder Zeiger übergibt? Was muss da e.E. bedenken?
cu,
pumbah
Frage zu Referenzen und Pointer
-
BartSimpson
- Beiträge: 1379
- Registriert: 6. November 2004 12:03
- Kontaktdaten:
Der Unterschied ist eigentlich nur, dass man bei dem dann einen Zeiger hat, beim anderen eine Referenz... Einem Zeiger kann man halt noch eine andere Adresse zuweisen etc.
Allerdings würde ich bei der Verwendung Folgendes beachten:
Wenn man Code wie
int x;
f(x);
hat, sieht man nicht, dass die Funktion evtl. eine Referenz übergeben bekommt und keine Kopie. Wenn f() jetzt x verändert, kann das beim Lesen des Codes zu Verwirrungen führen. Bei
f(&x);
ist klar, dass ein Zeiger übergeben wird und die Funktion den Wert von x auch verändern kann. Referenzen können in diesem Fall für Verwirrung sorgen.
Allerdings würde ich bei der Verwendung Folgendes beachten:
Wenn man Code wie
int x;
f(x);
hat, sieht man nicht, dass die Funktion evtl. eine Referenz übergeben bekommt und keine Kopie. Wenn f() jetzt x verändert, kann das beim Lesen des Codes zu Verwirrungen führen. Bei
f(&x);
ist klar, dass ein Zeiger übergeben wird und die Funktion den Wert von x auch verändern kann. Referenzen können in diesem Fall für Verwirrung sorgen.