【问题标题】:What's the logic behind this program?这个程序背后的逻辑是什么?
【发布时间】:2020-05-22 00:39:45
【问题描述】:
#include <stdio.h>
int main()
{
  if(2&&3>1)
  printf("its greater");
  return 0;
}

这段代码如何显示 2&&3>1 为真?

【问题讨论】:

  • 2 为真,3>1 为真,真和(&&)真为真
  • 因为操作顺序。 &amp;&amp; 最后评估。 3&gt;1true2 也是布尔值 true,因为任何不同于 0 的数字都是。
  • 好吧,不是true,因为我们在这里说的是C,但你明白了。
  • 好吧,我明白了,我错过了大括号 (2&&3)>1,无论如何,谢谢。
  • @Havenard — 并不是真正的“&amp;&amp; 最后评估”。评估条件的 LHS(评估后有一个序列点)。如果 LHS 为假,则不评估 RHS;只有当 LHS 为真时,才会评估 RHS——如果 RHS 为真,则整体表达式为真,否则整体表达式为假。在数值上,如果结果为假,则产生 0,如果结果为真,则产生 1。

标签: c logical-operators


【解决方案1】:

当你使用 if(x) 且 x 是一个非零值时,它会是真的!例如:如果(1),当(1),如果(2),当(3> 2)... 因此,(2) 为真,(3>1) 为真铅 (2)&&(3>1) 为真。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    • 2017-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多