C语言算数与逻辑运算符的优先级?

在有算数和逻辑运算符的C语言语句中,为什么要先进行算数运算再进行逻辑运算?哪位大佬解释一下

运算有优先级,正如加减混合运算中的先乘除、后加减。如:
3+8×2=3+16=19
而不能:3+8×2=11×2=22
数学上用到的运算有三种:
一种是“数学运算”(+-×÷乘方开方对数三角函数等),它们的优先级最高;
一种是“关系运算”(>≥==≤<=≠等),它们的优先级低于数学运算。
如:3+6>5×2,相当于(3+6)>(5×2),9>10,结果是:不成立(假)。
而不能:3+6>5×2,3+1×2,3+3,结果是6。
一种是逻辑运算(与&&或丨丨非!等),它们的运算优先级比关系运算还要低。比如:
13>2*5&&10!=5+4
相当于(13>2*5)&&(10!=5+4)
(13>10)&&(10!=9)
1&&1
1
而且,这些运算顺序(优先级)跟数学上的顺序是一致的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-01-02
先算括号,再取反,然后算术运算,最后逻辑。
如果前边还有个d=这一串,那么最后逻辑完成之后是0还是1,最后再赋给d,即赋值优先级还要低于逻辑。
至于为什么,没有为什么,C就是这样规定的。逗号是运算级别最低的。
第2个回答  2021-01-02

语法规定了优先级,算数优先级高于逻辑运算

第3个回答  2021-01-02
!(a+b)+c-1 && b+c/2
= !(3+4) + 5 - 1 && 4 + 5/2
= !7 + 5 - 1 && 4 + 2
= 0 + 5 - 1 && 6
= 4 && 6
= 1
这个题目考察的是运算符优先级,这个题目中只涉及算数运算符和逻辑运算符,只需记住算术运算符的优先级高于逻辑运算符即可。本回答被提问者采纳
相似回答