main(){ int a=1,b=2,c=3;if(c=a)printf("%d尀n",c);else printf("%尀n",b);}运行结果为1,如何解释?

2024-11-22 02:26:07
推荐回答(2个)
回答(1):

第一个if
里面
判断
a>b>c
她不是一块判断的
而是从左到右进行判断
先判断a>b
因为成立
所以a>b是正确的
所以a>b的值为
1
(1表示true,0表示false)
然后
就变成
1和c比较了
当然1小于c
所以第一个if
不满足
满足第二个if
所以就输出2+1
=3

回答(2):

if(c=a)
在c语言中
=是赋值运算符,
运算结果
c=1,
c=a
作为整个表达式的结果,是运算后的值也就是
1,
if
语句需要一个条件表达式,任何非零的值就是
真值,而零就是假值
另c语言中的相等比较运算符是
==