这个C++程序的运行结果为啥会这样

这是未定义行为,不要去研究为什么每个都正确。
■网友
i == ++i, i = 2now i = 4;这是我的测试结果,Win7 + Dev C++.猜测是不是==求值顺序不确定,如楼上说未定义行为,实际结果与编译器有关.
■网友
只需讨论i == (++i)即可。对于i == (++i)而言,先计算++i,然后再计算相等判断。而++i是对i进行自增运算没有改变i的存储地址,所以在进行相等判断时,==运算符左端的i是更新之后的i,所以相等判断永远为真。


    推荐阅读