int main()
{
int a,c;
scanf("%d",&a);
c=a%4;
if(c==0)//这里变成if(c=0)
//怎么输入什么都是0
printf("%d",c);
else
printf("%d",c)
return 0;
}//为什么把等号变成赋值号结果不同?
如果是 if(c==0)
,只有当 c
的值为 0
的时候,条件为 true
如果是 if(c=0)
,首先将 0
赋值给 c
,然后再判断 if(c)
,如果 c
为 0
,则为 false
给一个简单的例子,这里输出的就是 5678,因为执行的是else中的语句
#include<stdio.h>
int main()
{
int i = 10;
if(i = 0) printf("1234");
else printf("5678");
return 0;
}
如果你用赋值符号相当于就直接执行c=0;if会将括号里的语句当作true来看,所以这等价于直接赋值
这还用问?如果能互换那用两个不同的运算符干啥?