黑马程序员技术交流社区
标题:
关于"++"问题
[打印本页]
作者:
王安琪
时间:
2013-6-26 21:57
标题:
关于"++"问题
本帖最后由 王安琪 于 2013-6-26 22:04 编辑
在定义一个i的时候如果写成 i=i++;与 i++; i=i++; i++;加的时候内存储存方式有什么不同?
复制代码
作者:
ytblght55
时间:
2013-6-26 22:07
http://bbs.itheima.com/thread-58027-1-1.html
作者:
ㄗs:/|丶hearts
时间:
2013-6-26 22:30
本帖最后由 ㄗs:/|丶hearts 于 2013-6-26 22:37 编辑
定义的时候?!是这样吗:int i = i++; 定义的时候这样写 肯定要报错的
运算的时候 int i=1;
i++; 结果是i 自增1 ,i =2
i=i++; 先运算i++,这时候i =2 ,i++ 的值还是1;然后把i++的值(也就是1)赋给i, 最后结果还是i=1
作者:
王楚鑫
时间:
2013-6-26 22:36
我的理解:
i=i++可以理解为右边因为运算符决定了这个i值有用处,所以自增之前就类似在内存中开辟了一个地方先保存i的值,然后i再自增,接着又把i值赋给i,就把刚才自增的给覆盖了,
temp=i--->i=i+1---->i=temp
而i++是自增
不知道我理解的对不对,毕老师的视频第二天15小节对这个问题讲的挺细的
作者:
张海龙
时间:
2013-6-27 12:58
刚刚学会这个问题,比如 int i=t(t是一个数值);i=i++.这样的话,在程序到i=i++.处。java的编译器会动态分配一处内存存放i的原始值,然后i++(即i自加1),接下来编译器将存放的那个原始值赋予i(=左边的i),即此时i等于原始值(t),最后编译器就释放存放原始值的内存。所以最后i=t;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2