空指针的判断与思考

判断一个指针是否为空指针这个凡是学过编程语言的童鞋应该都做过的问题,而且这确实是一个简单的基本上没有考虑过的问题。今天我突然想了一下。。。(脑残征兆)

判断指针是否为空,常见的就是方法是:

	if(NULL == p){};
	if(p = NULL){};
	if(0 == p){};
	if(p == 0){};
	if(!p){};


老鸟更喜欢的方法是1,5。

根据陈俞飞的博客,http://blog.csdn.net/chenyufei1013/article/details/6193295(专业),上述两种方法都没隐式类型转换,也即这两种方法是等价滴!均可。

 

那么在进行空指针判断时要注意什么?

丁新童鞋http://blog.sina.com.cn/s/blog_49055f91010004go.html也给出了看法,也即“可读性”。

c++之父不支持第一种方法,是因为在某些平台上null并不一定为0,可能是其他特殊字符。。。

在win32的API中if(NULL == p)不会将p误以为是bool型,而且判断过程中也不会出现将p赋空的差错。

当然如果喜欢的话也可以使用if(p == NULL)。

对bool型有倾向的请选择if(!p)吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值