C语言问题 ||和&&的优先级谁更大 C语言问题 当以下逻辑表达式出现时,究竟是怎么运算的, a>b&&b||9>c

当以下逻辑表达式出现时,究竟是怎么运算的,a>b&&b||9>c越详细越好,拜托牛牛们了!因为&&和||感觉是同一级的,当它们同时出现时,该怎么算?... 当以下逻辑表达式出现时,究竟是怎么运算的,
a>b&&b||9>c
越详细越好,拜托牛牛们了!
因为&&和||感觉是同一级的,当它们同时出现时,该怎么算?
展开
 我来答
百度网友f036095c5
2016-11-14 · TA获得超过1234个赞
知道小有建树答主
回答量:729
采纳率:83%
帮助的人:618万
展开全部

表达式从左往右依次运算。首先执行a>b&&b。如果这个值为true的话,就结束了。如果是false的话,再和||做运算。写一个简单的测试。你可以通过修改变量值来看不同的结果。

#include <stdio.h>
#include <stdbool.h>
int first()
{
int a = 2, b = 1;
printf("a > b\n");
return a > b;
}
 
bool second()
{
int b = 0; // set b true or false;
printf("b\n");
return b;
}
bool third()
{
int c = 1;
printf("9>c\n");
return 9 > c;
}
int main()
{
if (first() && second() || third())
{
printf("true\n");
}
else
printf("false\n");
return 0; 
}

修改b的值可以看到不同的结果。如图:


风若远去何人留
2016-11-14 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20413 获赞数:450087
专业C/C++软件开发

向TA提问 私信TA
展开全部
&&的优先级更高。
回显计算&&

比如 a&&b || c&&d
先计算a&&b 再计算c&&d 最后两个再||
不过 &&和||是有短路规则的。
当&&左值为0,那么右值不会计算。
当||左值为1 那么右值不会计算。

还是这个例子。
a&&b || c&&d
a b c d 如果不是简单的变量 而是表达式
那么
如果a为0, b不参与运算。
如果c为0,d不参与运算
如果a和b都为1,那么a&&b为1. 整个c&&d不参与运算。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式