由于工作,N久都没来了!
我感觉上面的大水牛说得不一定对
i=3; i++*++i+i--*--i=? /*它在这时是从左到右*/
首先(i++)=3
i=4
在运算(++i)=5
i=5
在(i--)=5
i=4
--i=3
i=3
现在可以运算+了,
(i++)*(++i)+(i--)*(--i)=30
j=i++*++i+i--*--i j=18
这个的原因是编译从右到左 /*在这时双是从右到左*/
先(--i)=2
i=2
i--=2
i=1
(i--)*(--i)=4
++i=2
++i+4=6
i++=3
所以为18
有点乱,好象是这样
所以总不能一会儿向左一会儿向右吧,因为符号的优先级已经定了,那么结合方向也已经确定了,所以我认为不可能出现一会儿向左一会儿又向右的情况,我的解释如下:我再想一下,推敲一下,明天给你回复。
我感觉上面的大水牛说得不一定对
i=3; i++*++i+i--*--i=? /*它在这时是从左到右*/
首先(i++)=3
i=4
在运算(++i)=5
i=5
在(i--)=5
i=4
--i=3
i=3
现在可以运算+了,
(i++)*(++i)+(i--)*(--i)=30
j=i++*++i+i--*--i j=18
这个的原因是编译从右到左 /*在这时双是从右到左*/
先(--i)=2
i=2
i--=2
i=1
(i--)*(--i)=4
++i=2
++i+4=6
i++=3
所以为18
有点乱,好象是这样
所以总不能一会儿向左一会儿向右吧,因为符号的优先级已经定了,那么结合方向也已经确定了,所以我认为不可能出现一会儿向左一会儿又向右的情况,我的解释如下:我再想一下,推敲一下,明天给你回复。