求救各位大佬
为什么程序输出结果是这样的
孩子第一次学c
解释都在图中了。
if(a==0 && b==0)
a=0是赋值,a==0才是判断是否等于0啊
代码执行完,a,b,c都变成0啦
if(a=b && b=0)这里 a=0是赋值语句,先执行a=0,0为假,所以 &&后面的b=0不再执行,b的值不变,if语句不成立,执行else语句
c=a-b=0-1=-1;
在C语言中,&& 逻辑与运算符,如果&&左侧为真,才会执行&&右边的表达式,如果&&左侧的为假,&&运算的结果也就是假,&&右边的表达式就不会再执行,所以b=0这一条没有执行。
所以最后 a = 0 ; b = 1; c=-1
a==0是判断,a=0是赋值
所以判断一开始,a就被赋值成0了
&&是逻辑运算符,它跟&不同,具有短路特性,当a是0,直接进入else,而不执行b=0
所以b没变,还是1
else里面
c=a-b
所以c=-1