| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 945 人关注过本帖
标题:一个不常见的问题!
只看楼主 加入收藏
我想要飞
Rank: 1
等 级:新手上路
帖 子:121
专家分:0
注 册:2004-6-15
收藏
 问题点数:0 回复次数:11 
一个不常见的问题!

请教!

main()

{ int i=1;s=0;

s=(++i)+(++i)+(++i)+(++i);

printf("%d",s);

结果是多少啊 为什么!?还有(i++)+(i++)(i++)+(i++);

搜索更多相关主题的帖子: 多少 
2004-09-18 21:35
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 

两个都是8吧,我猜,因为你用了括号。

2004-09-19 00:09
忆楠
Rank: 1
等 级:新手上路
帖 子:721
专家分:0
注 册:2004-7-5
收藏
得分:0 

哎```这种问题只有在考试的时候才会有~~

我觉得也应该是8 在相加前i先自增1 然后再进行运算

第二个也差不多 都是自增运算


点 鼠 标 , 救 饥 民 http://www./
2004-09-19 00:33
pitney
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2004-9-17
收藏
得分:0 
应该是第一个为14,第二个为10吧
2004-09-19 00:42
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
收藏
得分:0 

第一个是14

第二个是10


2004-09-19 10:28
我想要飞
Rank: 1
等 级:新手上路
帖 子:121
专家分:0
注 册:2004-6-15
收藏
得分:0 

我知道结果!但是为什么啊!

想不通(i++)+(i++)(i++)我知道什么意思

另一个请解释也下


个人宣言;黑暗的腹地,我睁开双眼, 世界哑口无言。。。
2004-09-19 12:46
牛虻
Rank: 1
等 级:新手上路
威 望:1
帖 子:472
专家分:0
注 册:2004-10-1
收藏
得分:0 

这是依系统而定的,有的系统按照自左向右顺序求解括弧内的运算,求完第1个括弧的值后,实现i的自加,i值变为2,再求第2个括弧的值,直到最后一个括弧,结果表达式相当于1+2+3+4=10,说明:定义 i=1 ;a=i++,此时a=1而不是2,先把i的初始值赋给a,然后i做自加,i=2。但在有的系统(MS C )会得出8的结果。另外一个:表达式相当于2+3+4+5=14,说明:定义i=1,a=++i,此时a=2而不是1,i先做自加完再赋值给a,i=2。


土冒
2004-10-02 14:18
weixiaohe
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2004-8-6
收藏
得分:0 
这样的问题根据编译器而定的,i+++i+++i+++i+++这个肯定是等于四的,在什么编译器上都是的
2004-10-02 23:35
foxlixiao
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2004-9-22
收藏
得分:0 

答案是20,前++是先自加后运算,后++是后运算先自加

有没有括号不影响的,++的优先级本来就很高。

2004-10-04 09:02
werm
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2004-9-29
收藏
得分:0 

????

在vc++6.0上显示结果是15啊?

2004-10-04 09:58
快速回复:一个不常见的问题!
数据加载中...
 
   



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

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