1、bool型:bool型变量不可以直接与TRUE、FALSE或者1、0进行比较。

因为bool型中,非零值为“真”(TRUE),零值为“假”(FALSE)。对TRUE并没有确定的值,VC++中为1,VB中为-1。

正确的比较方法为:

bool flag = 1;

if (flag){}

if (!flag){}

2、int型:int型变量直接与0比较。

int a = 1;

if (a == 0){}

if (a!= 0){}

3、float变量:不能将float变量用“==”、“!=”与任何数字比较,应设法转化为“>=”、“<=”的形式。

float a = 3/5;

if ((a >= -value)&&(a <= value)){}//value是允许的精度

4、指针:将指针变量与NULL比较。

因为指针变量的零值是空(NULL):

int a;

int *p = a;

if (p == NULL){}