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

 我来答
硪丨暧恋
2016-11-10 · TA获得超过8980个赞
知道大有可为答主
回答量:5336
采纳率:93%
帮助的人:2179万
展开全部
指针变量为空 if(P==NULL)
static 变量为空 if(p==0)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风若远去何人留
2017-05-15 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450129
专业C/C++软件开发

向TA提问 私信TA
展开全部
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条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式