| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 668 人关注过本帖
标题:[讨论]大家来看看!
只看楼主 加入收藏
flylee
Rank: 5Rank: 5
等 级:职业侠客
帖 子:309
专家分:374
注 册:2004-8-10
收藏
 问题点数:0 回复次数:4 
[讨论]大家来看看!

main() { int a=2, b=2; if(a==b==2) printf("%d%d\n",a+(a==b==2),b); }

请问一下,这个程序运行后会输出什么?

2004-09-12 11:57
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
收藏
得分:0 

没有结果

什么也不输出


2004-09-12 13:17
flylee
Rank: 5Rank: 5
等 级:职业侠客
帖 子:309
专家分:374
注 册:2004-8-10
收藏
得分:0 

main() { int a=2, b=2; printf("%d%d\n",a+(a==b==2),b); }

那这样呢?

2004-09-15 13:11
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 

输出22

原因: 主要的问题集中在 a+(a==b==2) 首先 C语言要先算括号里面的,因为括号里面碰到了两个==,按照从左到右的原则先算a==b的值,因为a和b都是2,所以a==b的值为1, 然后 再用这个1和后面的2进行==运算。很明显,小学生都看得出来:1不等于2,所以1==2的值为0。

所以(a==b==2)的值就是0啦。a+0自然也还等于a


淘宝杜琨
2004-09-15 17:09
Jorbo
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2004-9-8
收藏
得分:0 

高手!!我试了,神vLinux飘飘

说的对!


2004-09-15 17:15
快速回复:[讨论]大家来看看!
数据加载中...
 
   



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

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