Bei der Ausführung dieses Stücks C-Befehl ist die Ausgabe von num 7. Ich habe erwartet, dass es 6 ist, kann jemand erklären, warum und wie es sich herausstellt, 7 zu sein?C Inkrement Operator Erläuterung
#include <stdio.h>
int main() {
int a[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int i = 0, num = 0;
num = a[++i + a[++i]] + a[++i];
printf("%d ", i);
printf("%d ", num);
return 0;
}
Es undefinierten Verhalten ist - Sie können nicht gleiche Variable ändern zweimal zwischen im gleichen Arbeitsgang. – yeputons
Haben Sie nicht dieselbe Frage innerhalb derselben Stunde gestellt? (Zugegeben, Sie haben es diesmal viel besser formuliert. :)) – synchronizer