今天看到一个网友的这样一个问题。
int x = 0;
x = x++;
为什么x的值是0不是1呢?
难道x++不改变x的值吗?
-------------------------------------
x=x++;
如果x=5,我们看以下步骤
运算步骤: 寄存器 内存
初始状态: 0 5
读入x 5 <----- 5
x=x; 5 ------> 5
x++;(此x为寄存器值) 6 5
运算结束,寄存器清零 0 5
可以看出,此操作没有效果.
-----------------------------
x=++x;
如果x=5,我们看以下步骤
运算步骤: 寄存器 内存
初始状态: 0 5
读入x 5 <----- 5
x++;(此x为寄存器值) 6 5
x=x; 6 ------> 6
运算结束,寄存器清零 0 6