| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 660 人关注过本帖
标题:求助:关于i++
只看楼主 加入收藏
lqcheng
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-8-18
结帖率:100%
收藏
 问题点数:0 回复次数:8 
求助:关于i++
i++ 的加1是在什么地方加的?
举个例子,刚看到的:
int i=1,s;
s=(i++)+(++i);
pringf("%d,%d",s,i);

第二行中的++i中的i的值是1还是已经变成2了?
这和编译器有关吗?
搜索更多相关主题的帖子: 编译器 
2008-06-10 20:05
lqcheng
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-8-18
收藏
得分:0 
用vc6.0编译,结果是4,3
但是

main()
{int i=1;
s=(i++)+(++i)+(i--);
printf("%d,%d",s,i)}

的结果是6,2
2008-06-10 20:10
yjcf
Rank: 1
来 自:西安工业大学
等 级:新手上路
帖 子:145
专家分:0
注 册:2008-3-29
收藏
得分:0 
i++是i=i+1
i++是先取i,在+1。
++i是先+1,在取i。

泾溪石险人竞慎,终岁不闻倾覆人。却是平流无石处,时时闻说有沉论。
2008-06-10 21:10
p1s
Rank: 4
等 级:贵宾
威 望:10
帖 子:454
专家分:3
注 册:2005-11-4
收藏
得分:0 
s=(i++)+(++i);

根据《易学C++》里面的口诀,增量运算优先级在+之前,况且已经有了括号。所以i++的时候,i的值变为2,但是(i++)这个表达式的结果仍然是1。从左到右运算,i为2的时候(++i)的表达式结果为3,i的值也变为3。
所以最后输入s为4,i为3。
2008-06-11 20:00
lingluoz
Rank: 2
来 自:苏州科技学院
等 级:新手上路
威 望:4
帖 子:749
专家分:0
注 册:2008-2-2
收藏
得分:0 
看着这点东西就烦。。还不如直接用i=i+1好了。看上去都舒服。。

Murphy's Law :
If there are two or more ways to do something, and one of those ways can result in a catastrophe, then someone will do it.
2008-06-11 20:05
lqcheng
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-8-18
收藏
得分:0 
我也反感这种语句,但无奈的是总能看见有的题这样写
请问p1s:
main()
{int i=1;
s=(i++)+(++i)+(i--);
printf("%d,%d",s,i)}

的结果是6,2
按照你说的,结果应该是7,2啊,怎么回事?
2008-06-11 22:50
JavaPro
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-6-5
收藏
得分:0 
[bo][un]lqcheng[/un] 在 2008-6-11 22:50 的发言:[/bo]

我也反感这种语句,但无奈的是总能看见有的题这样写
请问p1s:
main()
{int i=1;
s=(i++)+(++i)+(i--);
printf("%d,%d",s,i)}

的结果是6,2
按照你说的,结果应该是7,2啊,怎么回事?


结果是6和2,没有错啊。 怎么加减的运算都算不清?
2008-06-12 16:34
youyouzizi
Rank: 1
来 自:武汉
等 级:新手上路
帖 子:15
专家分:0
注 册:2008-6-11
收藏
得分:0 
很恶心的代码
2008-06-12 20:19
快速回复:求助:关于i++
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017386 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved