为什么这样,超级不明白,
int x=5,y;
y=--x+--x/2
求y的值,我算了--x=4,--x/2=1,y 应该是5啊,为什么会4
[解决办法]
解释如下:
先讲点汇编原理的东西:对于计算操作,寄存器都是一次取两个数,做计算,然后再去另一个数再跟刚才的结果进行计算。
你的题目的解释:
int x=5,y;
y=--x+--x/2
步骤1:寄存器一次直接取两个数(--x),(--x/2),这个表达式同时进行操作在相加,也就是x进行了两次的自减后--x=3,(--x)/2=1---> 所以y=--x+--x/2=3+1=4