c中的表达式返回1表示真实

时间:2016-04-27 19:15:26

标签: c

在c编程中,所有非零数字都可以在条件表达式中使用以返回true。在那个方面,为什么评估为真的表达式返回1,而不是任何其他非零值?

#include<stdio.h>
int main()
{
    printf("%d",6==6);
}

输出:1

3 个答案:

答案 0 :(得分:3)

这在C标准中定义:

  

6.5.13逻辑AND运算符

     

&amp;&amp;如果两个操作数的比较不等于0,则运算符应为1;否则,它产生0.结果的类型为int。

与其他逻辑运营商类似。

对于这些案例具有确定性值是很有意义的,而最低的正非零值是一个很好的候选者。

答案 1 :(得分:3)

C11 draft

6.5.9平等运营商 3

  

==(等于)和!=(不等于)运算符类似于   关系运算符,除了它们的优先级较低.108)每个   如果指定的关系为真,则运算符为1,如果为,则为0   是假的。结果是int类型。对于任何一对操作数,确切地说   其中一个关系是真的。

答案 2 :(得分:0)

因为如你所说,评估那种表达式的两边,结果可能是真或假,这是一个布尔值。根据定义和对流,在C标准中,布尔值用1表示真,0表示假。