Ausgabe:
%Vor% Ich konnte nicht verstehen, wie die *(ptr-1)
auf 5 ausgewertet wurde (korrekte Ausgabe). Aber wenn ich manuell
war es 1. Mein Verständnis ist *(ptr-1)
wird zu *(&a+1-1)
ausgewertet, was wäre
*(&a)
was 1 ist.
Bitte helfen Sie mir, dieses Konzept zu verstehen.
In Ihrem printf
erhalten Sie den Wert in Position 1, indem Sie die Position mit +1
von 0
erhöhen.
In Ihrer zweiten Ganzzahl rufen Sie 5
ab, weil &a+1
tatsächlich über das Array hinausweist. Wenn Sie also *(ptr-1)
eingeben, wird 5
zurückgegeben. Wenn Sie -1
entfernen, erhalten Sie ein wirklich seltsames Ergebnis (in meinem Fall war es -1078772784
).