作业帮 > 综合 > 作业

c语言的If表达式可以有赋值语句吗?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/10/04 18:00:32
c语言的If表达式可以有赋值语句吗?
#include
void main()
{
int a=0,b=0,c=0,d=0;
if(a=2)
{
b=2;
c=4;
}
else d=3;
printf("%d,%d,%d,%d",a,b,c,d);
}
if(a=2)
{
b=2;
c=4;
}
else d=3;
这个语句没有语法错误(可能会有警告),是可以执行的.
但是这个语句永远没有机会执行else部分.
a=2赋值表达式的计算结果就是2,当这个表达式出现在if语句逻辑表达式位置上的时候,它的计算结果是被当作逻辑值处理的,在C语言中用整型数表示逻辑量,非零表示“真”,所以这是一个永真式;这个if的逻辑条件永远不会为假.
也就是说,这里所表达的逻辑条件并不是“a的内容是否等于2”,而是向变量a中送入数据2.