本帖最后由 钟伟杰 于 2013-4-24 02:14 编辑
a=a++;运算过程中java会开辟一块新的内存存放a原来的值。
最后执行赋值操作的时候也是将这块新开的内存中的值赋给了原来的内存。
从执行顺序上看:因为++在后面,所以先使用a,“使用”的含义就是a++这个表达式的值是0,
但是并没有做赋值操作,它在整个语句的最后才做赋值,也就是说在做了++操作后再赋值的。
举个例子吧:
int a = 0;//这个没什么说的
a = a++;//等效于下面的语句:
int temp =a;//这个temp就是a++这个表达式的值
a++; //i自增
a = temp;//最终,将表达式的值赋值给i
|