i=i++;i=?

mimload 2008-09-01 10:22:05
如题:
int i =0;
i = i++;
执行完结后i为什么还是等于0?
c中也是这样吗?
...全文
660 48 打赏 收藏 转发到动态 举报
写回复
用AI写文章
48 条回复
切换为时间正序
请发表友善的回复…
发表回复
hai666wang 2008-09-05
  • 打赏
  • 举报
回复
这和jvm有关的,在自增运算中,java会开辟另一块空间给++ --使用,
至使原来的值未改变
因此输出为0;
c++里会输出1;
yoyo82 2008-09-04
  • 打赏
  • 举报
回复
[Quote=引用 43 楼 luyer_yuanming 的回复:]
i=i++和i=++i结果是一样的没分别.
[/Quote]

胡说!
yoyo82 2008-09-04
  • 打赏
  • 举报
回复
基础很重要!
SARA520 2008-09-04
  • 打赏
  • 举报
回复
i = i++;
应该跟
i++一样吧
喂喂香型 2008-09-04
  • 打赏
  • 举报
回复

假如在你这些代码后面再加上一句
System.out.println(i);
你认为最后的结果是什么呢,我刚试过了,还是2.
int i = 0;
System.out.println(i++);//得到0
System.out.println(i);//得到1
System.out.println(++i);//得到2
i=i++;
System.out.println(i);//得到2,首先进行赋值,然后++。因为i是值引用,所以旧的i改变不会影响到i。
System.out.println(i);//假如在你这些代码后面再加上这一句结果还是2;
而且用C的话结果并不一样
int i = 0;
printf("%d",i++);
printf("%d",i);
printf("%d",++i);
i=i++;
printf("%d",i);
结果是0123.
luyer_yuanming 2008-09-04
  • 打赏
  • 举报
回复
i=i++和i=++i结果是一样的没分别.
loaferwang 2008-09-04
  • 打赏
  • 举报
回复
使用eclipse 中的bug啦,对于它执行的先后,一步一步的让它跑啦,之后,你就知道这的原因啦,你可以试一下啦,这要比你问要来的实在呀,试一下啦!
oklinsong 2008-09-04
  • 打赏
  • 举报
回复
先用i,再i++,所以是0
rainsilence 2008-09-04
  • 打赏
  • 举报
回复
我用C#试过了,和java得结果一样,=得优先级比++高。
ZangXT 2008-09-04
  • 打赏
  • 举报
回复
[Quote=引用 38 楼 rainsilence 的回复:]
好像c里面是不一样
[/Quote]
编译器提取规则不一样。
rainsilence 2008-09-04
  • 打赏
  • 举报
回复
好像c里面是不一样
rainsilence 2008-09-04
  • 打赏
  • 举报
回复
不管什么语言
i++
和++i得到的结果都应该是一样的
int i = 0;
System.out.println(i++);//得到0
System.out.println(i);//得到1
System.out.println(++i);//得到2
i=i++;
System.out.println(i);//得到2,首先进行赋值,然后++。因为i是值引用,所以旧的i改变不会影响到i。
yangchao_713 2008-09-04
  • 打赏
  • 举报
回复
楼上已经说得很清楚了,可以看出来帖子标题,和内容会得到不一样的结果
Jewelz0811 2008-09-04
  • 打赏
  • 举报
回复
i++是先赋值在自增 ++i是先自增在赋值。。。
落叶的葬礼 2008-09-03
  • 打赏
  • 举报
回复
这问题还有这么多人来讨论。
!!!!
a315823806 2008-09-03
  • 打赏
  • 举报
回复
c中等于1.
在java中。i是个值的调用而非引用。
fangsp 2008-09-02
  • 打赏
  • 举报
回复
++i先自增1,在赋值。
i++先赋值,再自增1
hujunw520 2008-09-02
  • 打赏
  • 举报
回复
如果有底成的Java书籍,建议你去看看里面的语法
找到后你就不会有想要的结果了
这个C里面也有的小知识
liaoyi_ipanel 2008-09-02
  • 打赏
  • 举报
回复
i在++前就先使用i再++,在后就先++后使用i
aipb2008 2008-09-02
  • 打赏
  • 举报
回复
zangXT是正确的哦。

其实这个过程中,i的值是从0-》1-》0
加载更多回复(27)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧