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

 时间:2024-10-15 13:53:06

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]宝宝“百天”纪念日注意事项
  • 父母早逝,身世凄苦怎么画
  • 备孕神器——排卵试纸的使用方法
  • 热门搜索
    国庆节手抄报简单好看 心理健康手抄报大全 溺水手抄报简单又漂亮 保护环境手抄报图片 团结友爱手抄报 小学一年级手抄报 英语手抄报大全 光盘行动手抄报一等奖 读书手抄报内容资料 关于科学的手抄报