【问题标题】:C Decision Control Explain [closed]C决策控制解释[关闭]
【发布时间】:2017-09-03 18:40:17
【问题描述】:

为什么在下面写的程序中输出是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

【问题讨论】:

标签: c


【解决方案1】:

根据N1570草稿():

6.5.9 等式运算符

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

所以在你的情况下,条件为假,因为10 不小于10,所以0 存储到z

【讨论】:

  • 当问题使用“关系运算符”&lt; 时,您会引用相等运算符,这很奇怪。最终结果大致相同——如果运算符评估为 false,则分配 0,如果评估为 true,则分配 1——但是……
猜你喜欢
  • 2018-08-01
  • 2021-12-31
  • 1970-01-01
  • 2019-01-14
  • 2015-09-13
  • 1970-01-01
  • 2014-06-15
  • 2019-11-19
  • 1970-01-01
相关资源
最近更新 更多