C语言中 b = a && a > 0 这个事什么意思 怎么算
4个回答
展开全部
同楼上,这是一个运算符优先级的问题,在这里
比较运算旅棚春符>逻辑运算符>赋值运算符拆耐
b
=
(a
&&
(a
>
0))
但是,需要注意的是,&&和||这两个运算符的特点:
如果&&左边运算的值为0,那它不会再做右边的运算。例如
int
i=1;
if(--i
&&
++i){……}
这个时候i的值其实是0,if中只做了--i,因为这个时候i已经等于0了,所以并没有再做++i。
这个与运算符优先级无关,只是编译器优化时候把后面的优化掉了。
先判断a是否为0,
如果是0则b=0;
如果a不等于0在判断a>0是和毁否成立
最后做赋值
比较运算旅棚春符>逻辑运算符>赋值运算符拆耐
b
=
(a
&&
(a
>
0))
但是,需要注意的是,&&和||这两个运算符的特点:
如果&&左边运算的值为0,那它不会再做右边的运算。例如
int
i=1;
if(--i
&&
++i){……}
这个时候i的值其实是0,if中只做了--i,因为这个时候i已经等于0了,所以并没有再做++i。
这个与运算符优先级无关,只是编译器优化时候把后面的优化掉了。
先判断a是否为0,
如果是0则b=0;
如果a不等于0在判断a>0是和毁否成立
最后做赋值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把a的值赋给b与a大于0
这是个逻辑表达式
表示两者都成立
这种表达式只有两种结果
两边灶则都成立结果为
1
有一边或者宴辩衫两边都不成立则晌腔为0
这是个逻辑表达式
表示两者都成立
这种表达式只有两种结果
两边灶则都成立结果为
1
有一边或者宴辩衫两边都不成立则晌腔为0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询