当前位置: 代码迷 >> C语言 >> i++,i--和++i,--i的问题
  详细解决方案

i++,i--和++i,--i的问题

热度:114   发布时间:2006-01-20 17:51:00.0
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
因为++和--都是自右往左结合的

----------------解决方案--------------------------------------------------------
这个和编译器相关,所以写的时候尽量不要用这种含混的用法
----------------解决方案--------------------------------------------------------
  相关解决方案