如何在C中评估“ab> c”

问题描述 投票:-2回答:2

我在很多采访中发现了这个问题,我的老师问我同样的主要疑问是,如果我在C99标准中加入<stdbool.h>,那将评估为(true)<c(false)>c。需要比链接帖子更清晰的答案 - > Usage of greater than, less than operators

如何在C中评估a<b<ca>b>c 例如,在以下代码中。

# include<stdbool.h> 
int main(void){
    int a = 1,b=2,c=3;
    if(a<b<c)
        printf("a great b great c");
    }

先感谢您。

c
2个回答
7
投票

来自标准的itself(关系运算符脚注)

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


0
投票

运算符关联性表明a<b<c等同于(a<b)<c(与a<(b<c)相对)。

如果a小于ba<b评估为1。否则,0

如果a<b10)返回的值小于c,则整体评估为1。否则,0


来自spec

如果指定的关系为真,则每个运算符<(小于),>(大于),<=(小于或等于)和>=(大于或等于)将产生1,如果为假,则为0。 )结果的类型为int。

© www.soinside.com 2019 - 2024. All rights reserved.