010
11.01.2009, 14:15 Uhr
0xdeadbeef
Gott (Operator)
|
Das ist so nicht ganz korrekt. ++ bindet stärker als *, dementsprechend erhöht *p++ den Zeiger, aber gibt den Wert, auf den er zuerst gezeigt hat, zurück. Also:
C++: |
int a[] = { 1, 2, 3, 4 }; int *p = a; int x = *p++;
// jetzt ist x == 1 und *p == 2
|
...übrigens, im Hinblick auf mögliche C++-Programmierung in der Zukunft ist es sinnvoll, sich möglichst früh anzugewöhnen, das Präinkrement zu benutzen, wo beide funktionieren - da ist das Postinkrement nämlich unter Umständen langsamer. In diesem speziellen Fall ist das dann auch einfacher zu lesen:
C++: |
++p; // Zeiger erhöhen ++*p; // Inhalt des Zeigers erhöhen
|
-- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 11.01.2009 um 14:16 Uhr von 0xdeadbeef editiert. |