以下程序打印的输出是什么?如何评估if条件表达式?

-3 c loops if-statement

下面给出的代码片段的输出结果是什么?

int main()
{
    if(0<7<5)
        printf("I am printed");
    else
        printf("I am not printed");
}
Run Code Online (Sandbox Code Playgroud)
  1. 我被打印了
  2. 我不打印
  3. 编译错误
  4. 没有

use*_*738 6

输出将是"I am printed"- 原因是<(小于运算符)是左关联的.结果就是这样

(0<7)<5
Run Code Online (Sandbox Code Playgroud)

并且它是真的 - 它将评估为1.因此检查将是1<5,这也是真的,给你想要的结果.

标准本身

该表达式a<b<c不像普通数学那样被解释.正如语法所示,它意味着(a<b)<c; 换句话说,如果a小于b,比较1c; 否则,比较0c.