本帖最后由 straw 于 2013-9-30 01:46 编辑
int i=1;
i++;//这里i自动加1后再赋给i,
System.out.println(i);//输出2
i=i++;//这里先将右边的i赋给左边的i,然后右边的i再自动加1,内存中只有一个i变量,为什么下面的输出还是2呢?
System.out.println(i);//输出2
int val=i++;//将i赋给val,然后i再自己加1,这时val应是2,而i应该是3.
System.out.println(val);//输出2
System.out.println(i);//输出3
我疑惑i=i++;这步为什么i值没有变?虽然右边的i赋给左边的i后,但右边的i又自动加1了,i在内存中只有一个,为什么i值还是没有变呢?即使将变量i设成static也是一样.
|