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啊。。。 展开
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啊。。。 展开
2个回答
展开全部
运算符优先级问题及比较运算真假问题。
首先说下表达式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.
首先说下表达式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.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询