Hallo zusammen, ich habe ein kleines Verständnisproblem bei den Zeigern. Ich arbeite mich gerade durch diverse Übungen dazu. Ich habe damit ein bisschen herumexperimentiert. Es geht um die Erhöhung von Zeigern, wenn diese z.B. auf ein Array zeigen.
Code: Alles auswählen
int main()
{
int wert[3] = {11,12,13};
int *ptr = wert;
cout << *ptr << endl;
cout << *(ptr+1) << endl;
cout << *(ptr+2) << endl;
}
Code: Alles auswählen
int main()
{
int wert[3] = {11,12,13};
int *ptr = wert;
cout << ptr[0] << endl;
cout << ptr[1] << endl;
cout << ptr[2] << endl;
}
Diese Codeschnippsel geben mir beide die Zahlen 11,12,13 auf der Konsole aus, genau wie sie sollten.
Schreibe ich den Code dagegen so:
Code: Alles auswählen
int main()
{
int wert[3] = {11,12,13};
int *ptr = wert;
cout << *ptr << endl;
cout << *(++ptr) << endl;
cout << ptr[2] << endl;
}
bekomme ich als Ergebnis 11,12,0 zurück. Warum ist das so? Hab ich irgendwo einen Denkfehler? Ich benutze Code::Blocks mit den GNU GCC Compiler.
Gruß Bebu
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!