Hallo, ich haben keine Ahnung von C und eine (sicher einfache) Frage: ich soll einen Pointer angeben und habe folgende beiden Möglichkeiten: 1. ptr 2. *(ptr) Kann mir bitte jemand sagen was da der Unterschied ist?! So auf ASM Level! Ich vermute, bei 1. steht in PTR die Adresse auf die ich zugreife. Was aber ist bei 2.? btw: die Sachen mit ptr++ etc. sind mir schon klar geworden. Mühsahm, wenn man sich da einarbeiten muss. Danke Jan
Hallo, Bei Variante zwei wird auf den Wert zugegriffen, der an der Adresse des Zeigers hinterlegt ist. Viele Grüße, Lars
Verstanden, vielen Dank Lars! für mich leider (noch) sehr kryptisch - die Kürze hat aber schon ihren Reiz, wie bei *(ptr++): schnell geschrieben und erledigt trotzdem gleichzeitig einige Aktionen :-) Nochmals Besten Dank! Jan
Hallo Jan, > für mich leider (noch) sehr kryptisch - Das ist nur eine Frage der Gewohnheit... > die Kürze hat aber schon ihren Reiz, wie bei *(ptr++): > schnell geschrieben und erledigt trotzdem gleichzeitig einige Aktionen Lass die Klammern weg, dann wird es noch kürzer! (Allerdings wird dann nach dem Zugriff auf den Wert erhöht.) Viele Grüße, Lars
Lars R. schrieb: > Lass die Klammern weg, dann wird es noch kürzer! (Allerdings wird dann > nach dem Zugriff auf den Wert erhöht.) Auch mit Klammer wird der Pointer erst nach dem Zugriff inkrementiert.
Rolf Magnus schrieb:
> Wann der Pointer inkrementiert wird, ist nicht festgelegt.
Ok, wenn du denn unbedingt den Kleinlichen spielen musst, dann
formuliere ich es eben um:
Für die Dereferenzierung wird auf jeden Fall der nicht inkrementierte
Wert des Pointers verwendet, egal ob mit oder ohne Klammer.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.