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

比如我写个判断是素数的函数然后通过函数jsValue()来计算,其中函数返回的return 0或者是1;这里的0和1就是判断其表达式的真假吗?假如return返回是常量,那这个0和1是否和调用接受时的值一样呢
int isP(int m)
{
int i ;

for(i = 2 ; i < m ; i++)
if(m % i == 0) return 0 ;
return 1 ;
}

void jsValue()
{ int i,j;
for(i=0;i<300;i++)
{if(isP(a[i]))
{

}

}

}

if()括号内的表达式可以是关系判断,可以是变量,可以是常量。
如果是大小、等于等关系判断,那表达式的值是bool型
如果是变量或者常量,那表达式的值为非0时if判断成功,为0时为假。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-13
只把括号内的语句当成一个bool值来判断,true就执行,false就不执行。
会自动把所有可以转化为bool型转化成bool型。
关系表达式就不用说了,直接求出真假即可。
数值常量转化成bool型时,按照正数为true,非正为false的原则进行转换即可。本回答被提问者采纳
第2个回答  2011-03-13
if判断的时候如果是括号中是0则判断为假,否则判断为真,所以,如果if后面的括号使用了非0常量,则if后面的语句则必然执行
第3个回答  2011-03-13
flag是bit型,或者说是bool型,它的值只会是0或者1,也就是真或是假,所以可以不用加> =之类的
第4个回答  2011-03-13
那是只要判断括号内常量的真假,真为非零,条件成立,假为零,条件不成立。

相关了解……

你可能感兴趣的内容

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