为什么vc6++中 (++j)+(++j)+(++j) = 22
#include <stdio.h>
void main()
{
int j = 5, q;
q = (++j)+(++j)+(++j);
printf("j=%d, q=%d\n", j, q);
}
先是j两次自增=7,然后计算j+j=14,然后计算14+(++j),此时j再自增一次为8,故答案为22。
这是一种未定义行为,不同编译器有不同的处理方式,出现什么结果都有可能,所以不要纠结…
...
原创
2020-07-12 12:21:30 ·
1386 阅读 ·
0 评论