C语言问题。。急~~~

#include"stdio.h"voidmain(){inta=3,b=2,c=1,d=0;printf("表达式1=%d\n",d==a>b+c);printf("表... #include "stdio.h"
void main()
{
int a=3,b=2,c=1,d=0;
printf("表达式1=%d\n",d==a>b+c);
printf("表达式2=%d\n",d=a>b+c);
}

运行出来 :
表达式1=1
表达式2=0

为什么表达式1=1 表达式2=0啊。。。
展开
 我来答
五芷珍0R
2012-07-11 · TA获得超过122个赞
知道小有建树答主
回答量:286
采纳率:100%
帮助的人:75.7万
展开全部
运算符优先级问题及比较运算真假问题。
首先说下表达式2.d=a>b+c
d = (a > (b+c))
d = (3 > 3)
3>3不成立为假,bool值为0.所以d被重新赋值为0,这个零与初始化的0是有区别的。
再来看第一个表达式,
d == a > b+c
d == (a > (b+c))
后半部分根据表达式2可知为0,d初始值为0
所以0 == 0 为真,bool值为1.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
听海的声音qwe
2012-07-11 · TA获得超过291个赞
知道小有建树答主
回答量:467
采纳率:100%
帮助的人:306万
展开全部
看优先级嘛
1.先算a>b+c 假 为0 d==0? 所以是1
2.先算a>b+c 假 为0 d=0 所以是0
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式