黑马程序员技术交流社区
标题:
i = i++; 计算机底层怎么运算的?
[打印本页]
作者:
aohn1117
时间:
2015-11-26 23:27
标题:
i = i++; 计算机底层怎么运算的?
老师给的提问
作者:
yuanjun52306
时间:
2015-11-26 23:34
先建立一个临时空间,把i自增1,再把临时空间的i赋值给i,所以结果还是原来的i不变
作者:
yuanjun52306
时间:
2015-11-26 23:35
class I
{
public static void main(String[] args){
int i = 1;
i = i++;
System.out.println(i);
}
}
输出:1
作者:
yuanjun52306
时间:
2015-11-26 23:40
顺便说下i = ++i; 吧。
先将i自增1,然后把i(自增后的i)赋值给i
class I
{
public static void main(String[] args){
int i = 1;
i = ++i;
System.out.println(i);
}
}
输出:2
作者:
yuanjun52306
时间:
2015-11-26 23:43
其实不用在意等号左边的是谁,关键是++i 和 i++后的结果。因为等号左边是i,所以i相当于被改了两次
作者:
Camwly
时间:
2015-11-27 09:19
楼上6啊
作者:
MRguo
时间:
2015-11-27 14:12
按顺序算的话应该是:
右边的i赋值给左边的i,然后右边的i自增一次。结果:i=i。
如果是i=++i的话,结果应该是i=i+1。
作者:
anuo
时间:
2015-11-27 14:51
底层是不懂,但是这个问题的方向是要区分i++和++i的吧
作者:
黑夜中那颗星
时间:
2015-11-27 14:54
int i = 1;
i = i++;
1.先把i的值去到一个临时空间里面,里面存的是值是1
2.然后i再做自增操作,这个时候i是2了
3.最后把临时空间里面的值赋值给左边的i,还是变回1了
作者:
橘子果酱
时间:
2015-11-27 15:35
anuo 发表于 2015-11-27 14:51
底层是不懂,但是这个问题的方向是要区分i++和++i的吧
是的,还有i-- 和 --i 都是一样的 主要区分他们的运算顺序
作者:
wqd123
时间:
2015-11-27 21:55
结果是一样的
作者:
chh
时间:
2015-11-30 22:03
int i = 1;
i = i++;
先开辟临时空间i自增为2,再将i原来的值返回给左边的i。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2