i++,i--和++i,--i的问题
i=9, j=8
算一下(i++)+j-(++i-j--)
----------------解决方案--------------------------------------------------------
9+8-10-8
----------------解决方案--------------------------------------------------------
9+8-(9-8)
----------------解决方案--------------------------------------------------------
2楼的混淆了。i++是运算完再自加,++i是先自加再运算。而且无论是++还是--,都是i在变化,与最后的结果无关。
(8++)+9-(++9-8--)
=8+9-(10-8)
=15
----------------解决方案--------------------------------------------------------
刚才用win-tc编译了下结果是16,C-free 3.5的是15,不知道是怎么算出来的.
----------------解决方案--------------------------------------------------------
10+8-(10-8)
是16
应该是这样的,编译程序是整个扫描式子,把一个式子里的++和--都全部计算了得到变量的值
所以i是10,j是8
当然,这是随编译程序的不同而不同的
----------------解决方案--------------------------------------------------------
跟楼上答案一样~!~
----------------解决方案--------------------------------------------------------
我的编绎器得到的是15,
个人认为是9+8-(11-8)
----------------解决方案--------------------------------------------------------
(i++)+j-((++i)-(j--));
结果为:15
本人认为是10+8-(10-7)=15
因为++和--都是自右往左结合的
----------------解决方案--------------------------------------------------------
这个和编译器相关,所以写的时候尽量不要用这种含混的用法
----------------解决方案--------------------------------------------------------