C最简单的问题

来源:百度知道 编辑:UC知道 时间:2024/06/22 03:30:55
晕帖子沉了,再来
int j=5,q;
q=(++j)+(++j)+(++j);
这是课本最简单的问题,依我看应该是6+7+8为21啊,不过VC是22,TC是24,我晕了怎么个情况

首先都是加法
所以从左到右
先执行左边的两个(++J)+(++J)
而在执行时,因为两个都是++J,
所以此时J的值为7,7+7=14
再然后执行14+(++J)
即14+8=22
这是VC的结果
======================
TC版本的估计是先执行3个(++J)
然后就8+8+8=24

真执着了……tc,vc运行得24,22可能是编译系统问题,不同编译系统可能有差异。理论上分析是21