【发布时间】:2021-12-09 20:30:27
【问题描述】:
这是我的 C 代码。我没有得到任何输出。请帮忙。我也尝试在主函数内部添加初始化,然后我也没有得到任何输出。
#include <stdio.h>
int x = 10;
int main()
{
if (x = 20)
{
x = -1;
}
else
{
printf("x not eqaul to 20\n");
}
if (x > 0)
{
printf("x not greather than 0\n");
}
else
{
/* notjing */
}
return 0;
}
【问题讨论】:
-
if (x = 20)并没有按照你的想法去做。 -
你能给我解释一下吗
-
@GSerg
=是赋值,==是比较。 -
将一些
prints 添加到每个if和每个else分支,看看会发生什么。 -
x=20 是一个作业。 x==20 是一个比较运算符。 x=20 的结果是 20,这是一个不等于 0 的数字,所以这个条件是正确的。 x==20 将为 x=10 给出 0 或 false,因为它的比较运算符。因此,如果现在 x=-1,它首先进入内部。在这个 x>0 不为真之后,我们进入最后一个 else 块,然后结束。