BOOL变量 , float变量,指针变量和整型变量与“零值”比较

例1:写出BOOLflag与“零值”比较的if语句。

答案:

if(flag)

if(!flag)

如下写法均属不良风格:

if(flag==TRUE)

if(flag==1)

if(flag==FALSE)

if(flag==0)

例2:请写出floatx与“零值”比较的if语句。

答案:

constfloatEPSINON=0.00001;

if((x>=-EPSINON)&&(x<=EPSINON))

不可将浮点变量用“==”或“!=”与数字0比较,应该设法转化成“>=”或“<=”此

类形式。

如下是错误的写法:

if(x==0.0)

if(x!=0.0)

例3:请写出char*p与“零值”比较的if语句。

答案:

if(p==NULL)

if(p!=NULL)

如下写法均属不良风格:

if(p==0)

if(p!=0)

if(p)

if(!p)

例4:请写出int x与“零值”比较的if语句。

答案:

if(x==0)

if(x!=0)

应当将整型变量用“==”或“!==”直接与0比较。

不可模仿布尔变量的风格而写成:

if(x)//会让人误解value是布尔变量

if(!x)