bool,int,float和指针变量与“零值”的比较

 时间:2026-02-14 22:23:17

1、假设布尔变量名字为flag,它与零值比较的标准if语句如下: if   (flag) //   表示flag为真 if   (!flag) //   表示flag为假 其它的用法都属于不良风格,例如: if   (flag   ==   TRUE) if   (flag   ==   1   ) if   (flag   ==   FALSE)       if   (flag   ==   0) 

bool,int,float和指针变量与“零值”的比较

2、假设整型变量的名字为value,它与零值比较的标准if语句如下: if   (value   ==   0)       if   (value   !=   0) 不可模仿布尔变量的风格而写成 if   (value) //   会让人误解   value是布尔变量 if   (!value)    

bool,int,float和指针变量与“零值”的比较

3、假设浮点变量的名字为x,应当将 if   (x   ==   0.0)   //   隐含错误的比较 转化为    if   ((x> =-EPSINON)   &&   (x <=EPSINON)) 其中EPSINON是允许的误差(即精度)

bool,int,float和指针变量与“零值”的比较

4、指针变量的零值是“空”(记为NULL)。尽管NULL的值与0相同,但是两者意义不同。假设指针变量的名字为p,它与零值比较的标准if语句如下: if   (p   ==   NULL) //   p与NULL显式比较,强调p是指针变量 if   (p   !=   NULL) 不要写成 if   (p   ==   0)   //   容易让人误解p是整型变量 if   (p   !=   0)             或者 if   (p) //   容易让人误解p是布尔变量 if   (!p) 

bool,int,float和指针变量与“零值”的比较

5、有时候我们可能会看到   if   (NULL   ==   p)   这样古怪的格式。不是程序写错了,是程序员为了防止将   if   (p   ==   NULL)   误写成   if   (p   =   NULL),而有意把p和NULL颠倒。编译器认为   if   (p   =   NULL)   是合法的,但是会指出   if   (NULL   =   p)是错误的,因为NULL不能被赋值。 

bool,int,float和指针变量与“零值”的比较

6、程序中有时会遇到if/else/return的组合,应该将如下不良风格的程序 if   (condition) return   x; return   y; 改写为 if   (condition) { return   x; } else { return   y; } 或者改写成更加简练的    return   (condition   ?   x   :   y);

bool,int,float和指针变量与“零值”的比较

  • 杏树旺长不结果怎么办
  • 房子买卖怎么缴税
  • 【爱宝贝】:[14]宝宝“百天”纪念日注意事项
  • 父母早逝,身世凄苦怎么画
  • 备孕神器——排卵试纸的使用方法
  • 热门搜索
    韩国 旅游 全景旅游 南靖土楼旅游攻略 六鳌旅游攻略 四川旅游资源 互助旅游 云南旅游信息 包车旅游 黑瞎子岛旅游 洛阳旅游年票景点