Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c中的表达式返回1表示true_C - Fatal编程技术网

c中的表达式返回1表示true

c中的表达式返回1表示true,c,C,在c编程中,所有非零数都可以在条件表达式中使用以返回true。在这方面,为什么计算为true的表达式返回1,而不是任何其他非零值 #include<stdio.h> int main() { printf("%d",6==6); } #包括 int main() { printf(“%d”,6==6); } 输出:1这在C标准中定义: 6.5.13逻辑与运算符 如果&&运算符的两个操作数比较不等于0,则&&运算符应产生1;否则,结果为0。结果的类型为int 与其他逻辑运算

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

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

输出:1这在C标准中定义:

6.5.13逻辑与运算符

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

与其他逻辑运算符类似

在这些情况下,有一个确定性的值是很有意义的,而最低的正非零值是一个很好的候选值。

6.5.9相等运算符 三,

==(等于)和!=(不等于)运算符类似于 关系运算符,但其优先级较低。108)每个 如果指定的关系为真,则运算符生成1;如果为真,则运算符生成0 这是错误的。结果的类型为int。对于任何一对操作数,确切地说 其中一个关系是正确的


因为正如你所说,计算这类表达式的两边,结果可能是真的,也可能是假的,这是一个布尔值。根据定义和惯例,在C标准中,布尔值用1表示为真,0表示为假。

与C要求主函数在正常退出时要求主函数返回0的原因相同:约定。它们不一定。
is…()
家族返回非0。@user3528438但在您的案例中,这是
0
,意思是“true”。对于异常退出,
main
可以返回调用者可能捕获的任何非0值,例如批处理文件可以使用
errorlevel
。此代码中没有条件表达式。您的
=
表达式具有类型
int
,并且具有定义良好的语义。特别是,它不会“评估为真”。那只是你编造的。我想更多的是根据定义<代码>(a==a)的计算结果为
1