c - '&&' 和 '||' 是在运算符优先级的同一行还是不同的行?

标签 c operators logical-operators operator-precedence

如果它们确实位于不同的行中,则不应在 Exp1 || 中Exp2 && Exp3, (Exp2 && Exp3) 被首先评估,因为 && 的优先级高于 ||?

而且,如果它们确实位于同一行,那么执行顺序不应该是首先 (Exp1 || Exp2) 然后是 && Exp3 因为两者都是左关联的?

最佳答案

Exp1 || Exp2 && Exp3分组Exp1 || (Exp2 && Exp3),由于运算符优先

请注意,(Exp2 && Exp3) 仅在 Exp1 的计算结果为 0 时才实际计算,然后是 Expr3 Exp2 计算为 1 时计算。这称为短路

他们在不同的“行”是无关紧要的。

关于c - '&&' 和 '||' 是在运算符优先级的同一行还是不同的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50695552/

相关文章:

c - 在结构定义中的 ' ' 标记之前应为 '='

c - 如何让它显示第二大值而不是最小值

sql - SQL 中 IN 和 ANY 运算符的区别

java - Java中&=运算符是短路运算符吗?

Java无法正确读取 "&&"语句?

c - 当我们在 C 中编写 printf() 时,我们是声明它还是定义它?

JavaScript 表达式无法理解

Python 按位或

vb.net - 与条件和逻辑运算符混淆 - VB.net

c - 哈希表查找 - 使用完美哈希,在 C 中