【发布时间】:2016-02-04 04:49:41
【问题描述】:
#include <stdio.h>
#include <string.h>
int main()
{
int i=3,y;
y=++i*++i*++i;
printf("%d",y);
}
i 值最初递增到 4。然后它递增到 5。因此它递增到 6。因此结果应该是 216。但结果是 150。
【问题讨论】:
-
确实应该是
216.... 所以,也许问题不在代码中。尝试重建二进制文件,尝试不同的编译器(例如 g++ insted of gcc) -
关于序列点和未定义行为的 SO 上有很多帖子。查找它们。
-
no g++ 也给 150
标签: c