//(++i)+(++i)+(++i)=?
先说明一下:
++i的意思可分解成以下两步:i=i+1,i再参与运算
上面的表达式运算过程:(同级运算从左到右,有括号先算括号)
一、先运行第一个++i, i的结果是2
二、再运行第二个++i, i的结果是3
三、计算前两式之和。因为,此时运算的是i+i,所以是3+3=6(这个结果要保存到一个临时空
间中)
四、再运算第三个++i,i的结果是4
五、计算上一步的结果与当前i的和。6+4=10
应该是 ((((++i)++) + i)++) + i = 10
仔细研究 C 的运算顺序吧。
不过这么蛋疼的代码在实际中是个人就不会这样写,公司同事也会抽死你,也就学校的老师搞搞这一套。
c语言的计算顺序是,从左到有,能结合成语句的先计算,直到不能结合成语句为止。
另外,话说,++i,和 i++,实际当中使用没有区别。
从左向右算:++i(i=2), ++i(i=3) ++i(i=4)
2+3+4=9
12