【问题标题】:Logical operators precedence in CC中的逻辑运算符优先级
【发布时间】:2018-10-04 06:30:42
【问题描述】:

逻辑运算符在 C 中是否具有优先级(例如 &&|| 之后执行,反之亦然)还是从左到右执行?我通常使用括号来确保它们正确执行,但是有人问我这个问题,我不确定。

例如a || b && c == 2被解释为(((a || b) && c) == 2)(a ||( b && (c == 2)))

【问题讨论】:

  • 你还问什么? && 是逻辑 AND,|| 是逻辑 OR,== 是相等运算符,?: 是条件运算符,除了标签之外,您的问题中明显不存在。您是在询问条件运算符,还是一般的随机不相关运算符?此外,“...... C 中的优先级还是从左到右执行”没有任何意义。运算符优先级和求值顺序是两个不同的东西。
  • 认真的吗?这个问题在 K&R 前 10 页的某处得到了解答。

标签: c logical-operators operator-precedence


【解决方案1】:

条件被解释为(a ||( b && (c == 2)))

&& 的优先级高于 ||,您可以在此处看到:https://en.cppreference.com/w/c/language/operator_precedence

【讨论】:

    【解决方案2】:

    逻辑与优先于逻辑或。

    “==”优先于逻辑 OR 和 AND。

    请看:https://en.cppreference.com/w/c/language/operator_precedence

    【讨论】:

      猜你喜欢
      • 2018-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多