在c语言中,经常看到if()括号中使用常量,或者说没使用关系表达式>,=,<之类的,而是使用if(flag).

2024-11-08 18:01:12
推荐回答(5个)
回答1:

if()括号内的表达式可以是关系判断,可以是变量,可以是常量。
如果是大小、等于等关系判断,那表达式的值是bool型
如果是变量或者常量,那表达式的值为非0时if判断成功,为0时为假。

回答2:

if语句只把括号内的语句当成一个bool值来判断,true就执行,false就不执行。
编译器会自动把所有可以转化为bool型表达式转化成bool型。
关系表达式就不用说了,直接求出真假即可。
数值常量转化成bool型时,按照正数为true,非正为false的原则进行转换即可。

回答3:

if判断的时候如果是括号中是0则判断为假,否则判断为真,所以,如果if后面的括号使用了非0常量,则if后面的语句则必然执行

回答4:

flag是bit型,或者说是bool型,它的值只会是0或者1,也就是真或是假,所以可以不用加> =之类的

回答5:

那是只要判断括号内常量的真假,真为非零,条件成立,假为零,条件不成立。