如何在c和c++中判断一个变量是否为空

如题所述

第1个回答  2016-11-10
指针变量为空 if(P==NULL)
static 变量为空 if(p==0)本回答被网友采纳
第2个回答  2017-05-15
C/C++中,任何一个变量在定义后即拥有自身的内存空间,而内存空间中是一定有值的,所以不存在绝对意义上的空值。 一般来说,判断空值都是判断定以后,是否被赋值过,所以只需要判断变量值是否还是初始值即可。
区分变量类型,有一些常用的初始化情况:
1、 指针类型。
指针类型一般被初始化为NULL, 这是一个定义在标准库头文件中的宏,其值为(void *)0。所以对于指针p一般判断空值方式为
p==NULL
如果相等,则为空。
2、 整型系列。
包括int, short, char, long,以及对应的无符号类型。
整型并没有通用的初始化方式,一般初始化为0值或者非法值。即在程序运行中不会出现的赋值,比如负值或者最大值等。
当定义TYPE var=INIT_VALUE;
可以用 var == INIT_VALUE来判断是否为空(被赋值过)。 需要注意的是,如果INIT_VALUE选择不当,导致在运行中可能被赋值(非初始化)初始值,那么这个判断就会失效。
3、字符串/字符指针:
一般初始化为全0,可以通过判断长度,或者第一个字符值,来判断是否为空。如字符串char s[N]:
strlen(s)==0 或者 s[0]=='\0' 效果相同,都可以起到判断效果。
相似回答