C 请解释输出 #包括 int main() { INTA=9; 如果(a=5) printf(“a是5\t”); 其他的 printf(“a不是5\t”); printf(“a的值为%d\n”,a); 返回0; }

C 请解释输出 #包括 int main() { INTA=9; 如果(a=5) printf(“a是5\t”); 其他的 printf(“a不是5\t”); printf(“a的值为%d\n”,a); 返回0; },c,C,以下程序提供输出。。。。 a是5,a是5的值 请解释一下 #include<stdio.h> int main() { int a=9; if (a=5) printf("a is five \t"); else printf("a is not five \t"); printf(" Value of a is %d \n",a); return 0; } 它将5赋值给a,也使ifcondition

以下程序提供输出。。。。
a是5,a是5的值

请解释一下

#include<stdio.h>
int main()
{
     int a=9;
     if (a=5)
        printf("a is five \t");
     else
        printf("a is not five \t");
     printf(" Value of a is %d \n",a);
     return 0;
}
它将5赋值给a,也使
if
condition为真,因此
printf(“a是5\t”)执行此语句

if (a=5)

这不是一个比较,而是一个任务。换句话说,您不是在询问a是否为5,而是在将a设置为5。

a=5
键入为
a==5
,以通过@BLUEPIXY扩展注释。如果您的
语句正在检查将变量a赋值给值5是否为真。数学语句
a=5
的计算结果为真(“a”被成功设置为整数“5”)。@Shushrut:你到底想解释什么?该程序完全按照它应该的方式工作。考虑到这一点,您的问题应该是关于什么的?@AnT我希望输出
a不是a的五个值是9
,因为您在
if
语句中为
a
指定了5,所以不清楚为什么在打印
a
值时,您希望
a仍然包含
9
。请记住,
=
=
是不同的运算符。请解释how@Shushrut表达式
a=5
的计算结果为5,任何非0值均为真。您经常会看到这样的代码被用作空检查和在一行上分配指针的便捷方式。如果((a=5)==5),您可以运行此条件,以便更好地理解George的解释
if(a=5)