标签: c
为什么在下面编写的程序中输出是z = 0? 为什么不给出任何错误? 请解释
#include<stdio.h> int main() { int x=3,y,z; y=x=10; z=x<10; printf("x=%d, y=%d, z=%d",x,y,z); return 0; }
输出:
x=10, y=10, z=0
答案 0 :(得分:1)
根据N1570草稿(c11):
6.5.9平等运营商
==(等于)和!=(不等于)运算符类似于关系运算符,除了它们的优先级较低。如果指定的关系为真,则每个运算符产生1,如果为假,则产生0。 结果的类型为 int。
==
!=
1
0
int
因此,在您的情况下,条件为false,因为10不小于10,因此0会存储到z。
10
z