C语言中if语句,如果上面赋值a=0,if(a=0)括号中条件是真还是假

如题所述

C语言使用0代表假,非0代表真

if(a=0);
就相当于
a=0;
if(a);
就相当于
if(0);

括号中的条件是假
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-14
100%真。以后记住只要if内是赋值语句,那么if条件表达式为真。追答

因为我以前编程时写if (n == 0)时老是把等于写成赋值,所以每次if 语句都为真,这类bug难找的很,以后我干脆写成if (0 == n)这样即使把等于写成赋值,调试程序时会报错,不然把等于写成赋值是不报错的。

if为假我上机试过了,还是第一次遇到这钟问题,受教了。也只有学校会出这类无用的奇葩题。

第2个回答  2015-01-14

a=0 是赋值表达式,赋值表达式的值取决于赋值号左侧变量a的值,a=0 即表达式的值为0
若a=1 则赋值表达式的值为1
第3个回答  2015-01-15
false;
if(a=0)里面是赋值运算,因为赋值为0 ,所以为false,如果赋值为2,则是true
第4个回答  2015-01-14
你问题中的if(a=0)这个if判断的表达式是赋值操作,正常运行下一直是为真的
相似回答