a++是先进行取值,然后再自增
++a是先进行自增,再进行取值
例子1:x=3,y=4
(x++)+(++x)=? 答案是8
为什么呢?
对于第一个x++,先取值后自增,所以先取出3,然后x自增,x=4,最后x++=3
对于第二个++x,先自增再取值,所以先x自增x=5,然后把x取出来,最后++x=5
所以最终结果是3+5=8
例子2:
int i=10;
i=i++;
最后i等于多少?
i++是先取值,再自增
第一步:先取值,取出来的结果记作temp,temp=10
第二步:自增,i=11
第三步:进行赋值i=取出来的结果,也就是i=temp
所以最终i=10
另一个例子和这个例子一样:
int b=0;
for(int i=0;i<10;i++)
{
b=b++;
}
System.out.println(b);
最后b的结果不是10,而是0
这是因为每一轮都是这样三步:
第一步:先取值,取出来的结果 temp=0
第二步:自增,b=1
第三步:赋值,b=temp=0
所以每一轮最后b都等于0