C决策控制解释

时间:2017-09-03 10:16:18

标签: 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

1 个答案:

答案 0 :(得分:1)

根据N1570草稿():

6.5.9平等运营商

  

==(等于)和!=(不等于)运算符类似于关系运算符,除了它们的优先级较低。如果指定的关系为真,则每个运算符产生1,如果为假,则产生0结果的类型为 int

因此,在您的情况下,条件为false,因为10不小于10,因此0会存储到z