#include<stdio.h> main() { int a=0,b=0,c=0,d=0; if(a=1),b=1;c=2; else d=3; p
#include<stdio.h>
main()
{
int a=0,b=0,c=0,d=0;
if(a=1),b=1;c=2;
else d=3;
printf("%d,%d,%d,%d\n",a,b,c,d);
}
请问为什么这个程序编译错误?请详细讲一下
if(a=1),b=1;c=2;这一行做租
改成
if(a=1){b=1;c=2;}
因为if后面接一个语句,或者一个语纯余兆句块(毁中大括号括起来的叫语句块)
if(a=1) { b=1; c=2; } else d=4;
语句中if(a=1)执行的是将a赋值为1,再核迹判断是是否为真(非0即为真),所以条件满足,于改银并是便执行{ b=1; c=2; }
如果是要判断a是否为1的话搏罩,要写成if(a==1)。
因为a被赋值1,为真,衡带销所以往下执行,b赋值1,if执行完了,而下面的else没咐游有if与之配对,所以程序编译错误行竖
难道不是a=1,是赋值语句?