摘自林锐高质量C++编程指南
1. 布尔变量与零值比较
假设布尔变量名字为flag,它与零值比较的标准if 语句如下:
if (flag) // 表示flag 为真
if (!flag) // 表示flag 为假
2. 整型变量与零值比较
假设整型变量的名字为value,它与零值比较的标准if 语句如下:
if (value == 0)
if (value != 0)
3. 浮点变量与零值比较
假设浮点变量的名字为x,它与零值比较的标准if 语句如下:
if ((x>=-EPSINON) && (x<=EPSINON))
其中EPSINON 是允许的误差(即精度)。
注意:无论是float 还是double 类型的变量,都有精度限制。所以一定要避
免将浮点变量用“==”或“!=”与数字比较
4. 指针变量与零值比较
假设指针变量的名字为p,它与零值比较的标准if 语句如下:
if (p == NULL) // p 与NULL 显式比较,强调p 是指针变量
if (p != NULL)
小知识:为了防止将 if (p == NULL) 误写成 if (p = NULL),而可把p 和NULL 颠倒,写为if (NULL == p) 。
编译器认为 if (p = NULL) 是合法的,但是会指出 if (NULL = p)是错误的,因为NULL不能被赋值。