Zitat von
Darkthief
Was ich jetzt nur wissen wollte:
ist
(*zi) += 5;
dasselbe wie
i += 5;
?
Wenn ich davon ausgehen darf, dass "zi" ein Zeiger auf "i" ist, dann sind beide oben beschriebenen Ausdrücke äquivalent.
Zitat von
Darkthief
ich habs grat getestet und versteh jetzt echt nicht, warum (*i)++ was verändert und i++ nicht -.-
Ich hab's selbstverständlich auch getestet bevor ich es gepostet habe (kompilieren kostet mich sowieso nur einen Befehl im Terminal).
Zitat von
Darkthief
außerdem:
(*i)++;
dürfte doch garnichts verändern, da ja das postfix increment verwendet
wird.
Wir fassen zusammen:
zi++;
erhöht den Zeiger um eins.
ASCII-Grafik (RiDER ist mein Idol )
Code:
---+ zi (vom Typ int *) zeigt auf...
|
_ # _ _ _ _ _ Speicher
zi++;
-----+ zi (vom Typ int *) zeigt auf...
|
_ _ # _ _ _ _ _ Speicher
*zi;
Gibt eine Integer-Variable zurück, welche den Speicherbereich mit "i" Teilt.
Eine Veränderung dieses Speicherbereies (zB. durch inkrementation) hat eine Änderung aller Variablen zu folge, die diesen Speicherbereich teilen.
Kurz gesagt:
*zi und i sind äquivalent, weil sie sich den selben Speicherbereich teilen.
PS: sorry für die späte Antwort - der Topic ist irgendwie unter den anderen untergegangen
mfG. BlackBerry