在c编程中,所有非零数字都可以在条件表达式中使用以返回true。在那个方面,为什么评估为真的表达式返回1,而不是任何其他非零值?
#include<stdio.h>
int main()
{
printf("%d",6==6);
}
输出:1
答案 0 :(得分:3)
这在C标准中定义:
6.5.13逻辑AND运算符
&amp;&amp;如果两个操作数的比较不等于0,则运算符应为1;否则,它产生0.结果的类型为int。
与其他逻辑运营商类似。
对于这些案例具有确定性值是很有意义的,而最低的正非零值是一个很好的候选者。
答案 1 :(得分:3)
6.5.9平等运营商 3
==(等于)和!=(不等于)运算符类似于 关系运算符,除了它们的优先级较低.108)每个 如果指定的关系为真,则运算符为1,如果为,则为0 是假的。结果是int类型。对于任何一对操作数,确切地说 其中一个关系是真的。
答案 2 :(得分:0)
因为如你所说,评估那种表达式的两边,结果可能是真或假,这是一个布尔值。根据定义和对流,在C标准中,布尔值用1表示真,0表示假。