一 bool值和零比较
bool类型是在c99标准中才引入的一个语法特点,用的很少,一般情况下我们都使用整形变量来充当bool变量的角色
int flag;
if (flag == TRUE)
{
//...
}
if (flag == false)
{
//...
}
上面这个是错误写法。 因为在C语言中BOOL值的语义是:0表示假,非0表示真
# define FALSE 0
#define TRUE 1
但是flag是个整数,可以被赋值为很多值 2 3 4或其他非0值。比如flag本来是5,表示真,但是这里和TRUE(1)比较的时候就为假;逻辑错误。
正确写法如下
int flag;
if (flag)//如果是真
{
//...
}
if (!flag)//如果是假
{
//...
}
二 整形变量和零值比较
如果一个变量就是整形(不表示真假),如何跟0比较?
int num = 10;
if (num == 0)