黑马程序员技术交流社区
标题:
i++,小白求解
[打印本页]
作者:
Java田鹏
时间:
2016-3-22 23:20
标题:
i++,小白求解
题目如下:
int i = 100;
i = i++;
i = i++;
System.out.println(i);
为什么最终i是100,
不知道这样理解对吗?
首先i++表达式结果为100,i自身增加1,i=101,(i++)表达式赋值给i,最终i=100,
也就是说程序的运行顺序是(i++) →i自身自增→赋值运算,因为赋值是最后执行的,所以赋值动作覆盖了自增动作是吗?这样理解对不对,求大牛详解
作者:
CangYe
时间:
2016-3-23 00:46
i++是先给=左边的i赋值,再自增,换成++i就行了。
作者:
霸道总裁爱村花
时间:
2016-3-23 01:00
这涉及到内存的分配问题。java的编译器在遇到i++和i- -的时候会重新为变量运算分配一块内存空间,以存放原始的值,而在完成了赋值运算之后,将这块内存释放掉,i=i++的确是赋值动作覆盖了自增
作者:
zhoubinjian
时间:
2016-3-23 02:18
没错 ,是100,首先看你初始值,100,第一个i=i++,i的值为100,第二个i=i++,i还是先赋值再加,所以i还是100,不知道这么说你懂不懂?
作者:
1519218880
时间:
2016-3-23 23:34
首先i++是先把值赋给左边,第一次运算左边的i为100,然后下边的i再先把值赋给左边 还是100
作者:
丶飞得更高
时间:
2016-3-23 23:43
i =i++, i++, i先赋值给左边的i,自身然后在自加1,++i是先自加在赋值
作者:
604840337
时间:
2016-3-23 23:49
i =i++ 先赋值给i 所以就是100
作者:
马儿不吃草
时间:
2016-3-23 23:51
先赋值再运算,i=i++;先把100赋值给i,然后再自增
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2