99问答网
所有问题
C语言。我想知道那个if语句为什么输出###,就一个等号,不是赋值么?不就应该输出***了?
#include<stdio.h>
void main()
{
int a=5,b=0,c=0;
if(a=b+c) printf("***");
else printf("###");
}
举报该问题
推荐答案 2012-11-20
首先是个条件语句,然后看条件,按照运算符的优先级顺序,意思是将(b+c)的值赋值给a,完成赋值后,变量a的值由原来的5变为0,而此时变量a存储的值正是整个赋值语句的值,即if(0),C语言中,0表示假,1表示真,所以条件不满足,执行其对应的else语句,输出了###
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/ejj7OWvOt.html
其他回答
第1个回答 2012-11-20
对,那就是赋值
在if(a=b+c)里 先计算b+c 然后赋值给a ,a的结果就是0, 所以就不用执行if后的语句了
而去执行else语句
第2个回答 2012-11-20
对,那就是赋值
在if(a=b+c)里 先计算b+c =0 a的结果就是0, 所以就不用执行if后的语句了
而去执行else语句
第3个回答 2012-11-20
你看b+c=0是吧
0赋值给a是吧
a就变成0了是吧
if括号里面就是0了是吧
所以输出###了是吧
本回答被网友采纳
第4个回答 2012-11-20
a = b+c;
a = 0+0;
a的值为0
C语言规定0为假
所以执行else语句
1
2
下一页
相似回答
大家正在搜