【发布时间】:2017-07-06 11:16:37
【问题描述】:
在执行这条 C 命令时,num 的输出是 7。我原以为它是 6,谁能解释为什么以及如何变成 7?
#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;
}
【问题讨论】:
-
这是未定义的行为 - 您不能在同一操作中两次修改同一变量。
-
你不是在同一个小时内问过同样的问题吗? (当然,这次你的措辞好多了。:))
标签: c increment post-increment pre-increment sequence-points