Forum: Compiler & IDEs einfache Frage zur Syntax


von Jan (Gast)


Lesenswert?

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

von Lars R. (larsr)


Lesenswert?

Hallo,

Bei Variante zwei wird auf den Wert zugegriffen, der an der Adresse des 
Zeigers hinterlegt ist.

Viele Grüße,

Lars

von Jan (Gast)


Lesenswert?

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

von Lars R. (larsr)


Lesenswert?

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

von Stefan E. (sternst)


Lesenswert?

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.

von Rolf Magnus (Gast)


Lesenswert?

Wann der Pointer inkrementiert wird, ist nicht festgelegt.

von Stefan E. (sternst)


Lesenswert?

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
Noch kein Account? Hier anmelden.