零(0)是一个整数。由于各种标准转换,0可以被用于表示任意整数(布尔量:bool,字符型:char,整型数:int)、浮点类型、指针、还有指向成员的指针的量。0的类型将由上下文确定。
由于没有任何对象会被分配到地址0,因此,0也被当做一个指针常量,表明一个指针当时并没有指向任何对象。在C语言中非常流行的就是用NULL宏表示0指针。由于C++收紧的类型检查规则,采用普通的0表示空指针比NULL更好一些。如果你习惯了使用NULL来表示0指针,那么最好采用如下定义:
const int NULL = 0; //用const限定词是为了防止无意见重新定义NULL
看下面一道例题:写出bool、int、float、指针变量与零(0)比较的if语句。
1、bool型数据
bool flag;
if(flag)
{
A;
}
else
{
B;
}
2、int型数据
int flag;
if(0 != flag)
{
A;
}
else
{
B;
}
3、指针型数据
const int NULL = 0;
if(NULL != flag)
{
A;
}
else
{
B;
}
4、float型数据
const float NORM = 0.000001;
if((flag >= NORM) && (flag <= NORM))
{
A;
}
else
{
B;
}