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

如题所述

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

就是说假如a=0那判断的结果就是0咯

追答

记住一条原则:最后就是看表达式的值(一般为左值)。
在这里,最后这个表达式的值就是c的值了,如果a=0,那c=0,那最后表达式的值就是0;如果a非0,那c也非0,那最后表达式的值就相当于1

追问

非常感谢

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-11-16
相当于
c=a;//先无条件赋值
if(c)//根据赋值后的结果,也就是c值,来决定是否执行。
因为c=a这个是赋值表达式
只要是表达式 就有自身的值
赋值表达式的值,就是左值,其实说是右值也没什么区别。 不过一般认为是左值的追问

是不是假如a=0就相当于判断的结果是零啊

追答

是的

本回答被提问者采纳
第2个回答  2016-11-16
我觉得
除非
a不是0追问

懂了

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网