日期:2014-05-20  浏览次数:20663 次

很简单的一个题,但是搞不懂
int i=0;
i=i++;
System.out.println(i);

上面这段代码,为什么结果会是0?

------解决方案--------------------
i=i++;

解释成:
tmp = i ;  //tmp = 0
i++;  // i = 1
i = tmp ;  // i = 0
结果为0

如果 你改成 i = ++i ;
就解释成:
++i ;   // i = 1 
tmp = i ; // tmp = 1
i = tmp ; // i = 1
结果为1
------解决方案--------------------
i=i++ 意思是先是右边的i赋值到左边,然后再加1。所以i的值不会变,还是0。
你如果把i++换成++i,答案就不同了。++i是先加1在赋值,所以答案是1。