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.


Anmelden zum Antworten