Frage bezüglich * und & [erklärt]
-
Hallo,
ich habe mal eine Verständnisfrage Bbezüglich des Zeiger * und der Referenz &, wann ist was eher zu nutzen und warum benutzt man mal das eine und mal das andere??
-
Pointer werden/wurden benutzt weil es ein "Relikt" aus C ist. Dort gab es noch keine Referenzen (wobei diese an sich auch nur (besondere) Pointer sind). Referenzen sind hingegen einfacher zu handhaben, können dafür aber nie auf 0 zeigen. Wenn eine Funktion zB eine Referenz zurückgeben soll, muss sie dies immer tun und kann nicht im Fehlerfall einen 0-Pointer zurückgeben.
Auch bei Listen machen Pointer zB daher mehr Sinn, da das nächste Element dann entweder keines (Null-Pointer) oder eben ein Pointer auf ein gültiges Element ist.
Wenn es keinen Grund für Pointer gibt, spricht nichts gegen Referenzen.

-
cool danke für die erklärung. aber mal noch ne frage fellhuhn. wie kann ich es entscheiden wann es sinnvoll ist einen pointet zu nutzen oder eine referenz
-
Wie Fellhuhn angedeutet hat, Pointer nur, wenn NULL erlaubt sein soll, ansonsten lieber Referenzen verwenden.
Beispiel: Auf einem Spielfeld können 0 oder 1 Figur sein. Wenn Du nun auf dem Feld einen Verweis auf eine Spielfigur haben möchtest, dann nimmst Du Pointer, weil es sein kann, dass keine Figur auf dem Feld ist.
-
ahja ok, wunderbar, dsa war einleuchtend, danke

-
Airdamn schrieb:
...Pointer nur, wenn NULL erlaubt sein soll, ...
... oder die Verweise "umgehängt" werden können müssen....
Airdamn schrieb:
...ansonsten lieber Referenzen verwenden.