c语言中if(c=a)是不是相当于if(1),因为=不是判断符号?

2025-04-01 21:30:55
推荐回答(3个)
回答1:

不是,c=a是一个表达式,最后要看这个表达式的值,在这里当然要最后c的值,非零就相当于1了,如果c=0那就是零了

回答2:

相当于
c=a;//先无条件赋值
if(c)//根据赋值后的结果,也就是c值,来决定是否执行。
因为c=a这个是赋值表达式
只要是表达式 就有自身的值
赋值表达式的值,就是左值,其实说是右值也没什么区别。 不过一般认为是左值的

回答3:

我觉得
除非
a不是0