Topic: 运算符的问题,求助!!!! (i=i++;) |
Print this page |
1.运算符的问题,求助!!!! (i=i++;) | Copy to clipboard |
Posted by: sunyboy001 Posted on: 2006-02-20 13:09 public class Inc 这是Amay的SCJP1.4笔记的一个例题,输出结果是0; 如果将 i = i++ 改为 i++,输出结果就会变成1, 所以请教各位大虾解释解释 i = i++与 i++间的区别,不盛感谢!!! |
2.Re:运算符的问题,求助!!!! [Re: sunyboy001] | Copy to clipboard |
Posted by: sunyboy001 Posted on: 2006-02-20 13:11 怎么变灯泡了呢? 那些灯泡都是 ( i ) |
3.Re:运算符的问题,求助!!!! [Re: sunyboy001] | Copy to clipboard |
Posted by: ranchgirl Posted on: 2006-02-20 15:08 Edit your post, uncheck 禁止在这个帖子中使用笑脸标记 |
4.Re:运算符的问题,求助!!!! [Re: sunyboy001] | Copy to clipboard |
Posted by: xiaoqiang Posted on: 2006-02-20 15:42 i=i++;可以分解为: int t =1, i=0; t=i++; 这时先将 i 的值赋给 t, t=0; 然后 i 再自加,变为1; |
5.Re:运算符的问题,求助!!!! [Re: sunyboy001] | Copy to clipboard |
Posted by: sunyboy001 Posted on: 2006-02-20 16:06 谢谢,我想我明白了 |
6.Re:运算符的问题,求助!!!! [Re: sunyboy001] | Copy to clipboard |
Posted by: xiaoqiang Posted on: 2006-02-20 16:21 在编译器上出了问题,java的编译器在遇到i++和i- -的时候会重新为变量运算分配一块内存空间,以存放原始的值,而在完成了赋值运算之后,将这块内存释放掉。 i的原始值存放在后开辟的内存中,最后这个值将赋值给j,这样j=i++后,j就会得到i的值,而i又将自加,所以,在释放内存之后,原来存放j和i的地方将得到值将是:j(此时的值等于初始i值)和i(i自加后的值)。 所以i=i++的时将新开辟空间的 i 的原值最后重新给 进行过自加运算的 i 。所以 i 为0。 |
7.Re:运算符的问题,求助!!!! [Re: sunyboy001] | Copy to clipboard |
Posted by: xiaoqiang Posted on: 2006-02-20 16:25 不好意思,开始我也没注意 i = i++;后 i 仍为0后来查了才知道是编译器的问题和c++有很大的不同。 |
8.Re:运算符的问题,求助!!!! (i=i++;) [Re: sunyboy001] | Copy to clipboard |
Posted by: sunyboy001 Posted on: 2006-02-20 23:36 呵呵--- 不大好懂,不过我想我还是明白了,多谢指点,谢谢!!!!!! |
9.Re:运算符的问题,求助!!!! (i=i++;) [Re: sunyboy001] | Copy to clipboard |
Posted by: whiye Posted on: 2006-02-22 14:03 呵呵又学到了新的知识. |
10.Re:运算符的问题,求助!!!! (i=i++;) [Re: sunyboy001] | Copy to clipboard |
Posted by: 佐罗 Posted on: 2006-02-23 11:20 仿佛有点懂了 呵呵 |
11.Re:运算符的问题,求助!!!! (i=i++;) [Re: sunyboy001] | Copy to clipboard |
Posted by: suntao19830709 Posted on: 2006-03-24 16:36 其实我个人觉得,讨论这个太无聊了,看到过人写i++,也看到过人写a=i++,但是谁写代码会写i=i++呢??i=i++就和 i = i 一样是实足的垃圾代码!!!不过话说回来,i=++i却不是废代码。i的值会在原来基础上加1,但这仍然是画蛇添足。 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |