如何在c和c++中判断一个变量是否为空
展开全部
指针变量为空 if(P==NULL)
static 变量为空 if(p==0)
static 变量为空 if(p==0)
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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' 效果相同,都可以起到判断效果。
区分变量类型,有一些常用的初始化情况:
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' 效果相同,都可以起到判断效果。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询