Warum ist es, dass mein Zeigerwert ändert sich nicht, wenn ich es an die Konsole mit dieser Methode zu drucken:cout Zeiger auf Array-Element wird anderen Wert Ausdrucken als
int main()
{
int array[] = {1, 2, 3, 4, 5};
int *p = array;
p++;
*p = 100;
for (int i = 0; i < 5; i++)
{
cout << *array + i << ", ";
}
return 0;
}
, wenn ich das an den Druck Konsole bekomme ich 1, 2, 3, 4, 5
. Worauf zeigt der Zeiger in diesem Fall? In diesem Beispiel sollte array[1]
den Wert 100
haben, aber es ändert sich nicht.
Ich weiß auch, dass, wenn ich das Array bei 5
zum Beispiel starten, der Zähler nur in der Reihenfolge von 5
drucken wird. Was passiert hinter den Kulissen, um dies zu bewirken?
Nur eine kleine Anmerkung ... keine Notwendigkeit, jedes Element zu kopieren: für (const Auto & e: Array) cout << e << ""; –
@ A.Fagrell In diesem Fall sind sie Ints, so dass es fraglich ist, ob die Verwendung von Referenzen hilft. – juanchopanza