| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2135 人关注过本帖
标题:[问题已解决][求助]一道简单的题
只看楼主 加入收藏
ymwjx
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-7-17
收藏
得分:0 

main()
{ int i=3,c;
c=(i++)+(++i)+(i++);
printf("%d",c);
}
首先说明,写这种程序的人就是害人!所以请大家不要模仿!
大家先来看看这个吧!
第一main()
{int i=3,c;
c=(i++)+(i++)+(i++);
printf("%d",c);
}
有的系统是按照自左至右顺序求解括弧内的运算,表达式相当于3+4+5=12,而其他一些系统(一般用TUOBO C,WIN-TC,MSCD等)把3作为所有表达式的i值,所以就是3+3+3=9。
所以建议大家这样做:
main()
{int i=3,m,n,t,c;
m=i++;
n=i++;
t=i++;
c=m+n+t;
printf("%d,%d,%d,%d",m,n,t,c);
}
显示结果为:3,4,5,12

2006-08-03 13:21
ymwjx
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-7-17
收藏
得分:0 
第二main()
{int i=3,c;
c=(++i)+(++i)+(++i);
printf("%d",c);
}
而这个呢。系统先把i自加三次,然后就是6,然后再三个相加,就是18。
最好写成下面这个:
main()
{int i=3,m,n,t,c;
m=++i;
n=++i;
t=++i;
c=m+n+t;
printf("%d,%d,%d,%d",m,n,t,c);
}
显示结果为4,5,6,15
所以我给这个题的评论就是:乱搞。如果没说错的话,它这个题应该是我说的后者,先自加1,然后再相加,就是4
+4+4=12这也是我唯一想到答案是12的原因!



2006-08-03 13:33
池中月
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-4-10
收藏
得分:0 

原因是:表达式(i++)的值是i;


2006-08-03 14:33
美眉
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-8-3
收藏
得分:0 
基础都没打好!!
是4+4+4
( )优先及高

()+()+()
先算()里面的
i++,++i有区别.
但是结果都为4
所以是4+4+4=12

2006-08-03 16:01
nan123
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2006-8-1
收藏
得分:0 

15楼的兄弟你好!
我运行了一下你的程序,结果不是30,是26啊!
这是怎么回事?

2006-08-03 17:00
kcnj123
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-6-26
收藏
得分:0 
正确的解释是:在编译的时候对一整行代码进行扫描,因为有++i, 所以i的值为4,c的结果就是12,如果有2个++i则扫描后结果为5.
2006-08-03 20:53
ccj
Rank: 1
等 级:新手上路
帖 子:84
专家分:0
注 册:2006-7-27
收藏
得分:0 


河马的牙齿有多少颗,我不知晓;流氓兔的家在哪里,我不知晓;花开的声音,小草的呼吸,流星的足迹,我统统
2006-08-03 21:51
美眉
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-8-3
收藏
得分:0 
基础都没打好!!
是4+4+4
( )优先及高

()+()+()
先算()里面的
i++,++i有区别.
但是结果都为4
所以是4+4+4=12

2006-08-03 23:10
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
基础都没打好!!
是4+4+4
( )优先及高

()+()+()
先算()里面的
i++,++i有区别.
但是结果都为4
所以是4+4+4=12

=============
shuo hua bu yao zhe m ke bo hao bu, ru guo ni jue de ni hen li hai, wo gei ni chu ge wen ti.....

zuo ren yao hou dao




日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-08-04 00:22
美眉
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-8-3
收藏
得分:0 
,我错了向大家道歉!

2006-08-04 02:48
快速回复:[问题已解决][求助]一道简单的题
数据加载中...
 
   



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

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