首页 > 试题广场 >

请填写 BOOL,float ,指针变量与 ” 零值 ” 比

[问答题]

请填写 BOOL,float ,指针变量与 零值 比较的 if 语句。

提示:这里 零值 可以是 0,0,0 FALSE 或者 空指针 。例如 int 变量 n 零值 比较的 if 语句为: if(n==0)

If(n!=0)

以此类推。

请写出 BOOL flag 零值 比较的 if 语句:

C语言不通类型和0值比较总结

1.对于bool型变量

对于bool型变量来说,它的逻辑值只有两种,TRUE和FALSE。C语言中将非零值定义为了TRUE,0定义为FALSE。

但是对于有些编译器来讲,TURE有可能等于1,也可能等于-1。

因此,显然if(Bool == 1)或者if(Bool == TRUE)这样的形式都不太好


应该选择if(BOOL)的形式来判断bool型变量。


2.对于浮点型(float)变量

因为对于浮点型变量都是有精度限制的,所以不能够用==来判断两个浮点型变量是否相等

比较普遍的做法是,判断的两个变量做差,然后和精度相比较


eg. if(val1 <= EPSINON && val1 >= -EPSINON),其中,EPSINON为判断的精度


3.指针变量

对于指针变量,零值(即空指针)在编译器中一般都会被定义为NULL。

因此判断指针变量是否为空,一般的写法是if(NULL == P)

把NULL放在前面的目的是防止出现p = NULL赋值的情况。

编辑于 2017-01-26 14:25:49 回复(0)
if(flag==true)
if(flag)
都可
发表于 2017-01-24 11:10:40 回复(0)