if (赋值语句)

来源:百度知道 编辑:UC知道 时间:2024/05/16 15:06:55
#include <stdio.h>
main()
{
int a=3;
if(a=4)
printf("a=%d",a);
else
printf("a=%d",-a);
}
输出结果是4.
这个要怎么理解?

是的,输出是4!
程序执行到
#include <stdio.h>
main()
{
int a=3; //把3赋值给a
if(a=4) // 把4赋值给a , 因为 if(4)为真,则执行真的
printf("a=%d",a); // 部分。

有效程序就是上面这部分。

分析:
#include <stdio.h>//引入标准输入输出头文件。
main()//定义主函数。
{//函数开始。
int a=3;//定义一个整数a,值为3。
if(a=4)//假设a的值是4,C语言中0以外的逻辑值都是1,都是真。
printf("a=%d",a);//输出整数4。
else//否则,即逻辑值是0。
printf("a=%d",-a);//输出整数-4。
}//函数结束。

-----------------------------------------------
因为你把a==4 写成了a=4 那么IF的条件就永远为真啦
所以if语句就会执行printf("a=%d",a); 语句啦
希望你能进步...
-----------------------------------------------

非常尴尬,建议新人这么做

value == var

值==变量

这样如果少打了一个=编译器也会报错的

都是谭xx的书没写,造成这样的问题

C语言顺序执行,先把3的值赋给a,再把4的值赋给a条件为真执行printf("a=%d",a);