Java语言中的 i = i ++ 的问题
通常情况下
int i=0;
int j=i++;
System.out.println(i);
得到的结果肯定是 : 1;
但是当我们遇到的是 i = i++ 时候:
int i=0;
i=i++;
System.out.println(i);
- 情况就不一样了输出的结果是 0 ,;
- 首先要清楚这不是数学的问题, 如果是数学那么答案肯定是 1
- 在 Java 语言中,i = i++ 并不等效于 i++ ;
- 在 Java 中i = i++ 等效于如下的代码 :
int i = 0;
//等效代码
int temp = i; //就是 temp=0;
int i = i+1; //此时i是变成了 2 ;
//然后Java在输出之前又将之前存储的 temp=0 赋值给了 i;
i = temp // 即 i = 0;
//所以当我们输出的时候就会发现 i=i++ 的数值还是 i;
System.out.println(i);
ps: 在C语言中 i=i++ 是等效于 i++ 的
如有错误请各位大神指点,叩谢了!!!