对于 NULL 指针,我应该使用 NULL 还是 0?
复制
在处理 NULL
指针时,可以这样做
if(ptr != NULL){ ... }
or this
if(ptr != 0){ ... }
在 C++
中是否有理由选择其中一种指针?
Duplicate
When dealing with NULL
pointers one can do this
if(ptr != NULL){ ... }
or this
if(ptr != 0){ ... }
Are there reasons to prefer one over the other in C++
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
使用
NULL
因为它在语义上表明了你的意思。请记住,编程的目的不是告诉计算机要做什么。 关键是告诉其他人你告诉计算机做什么。
Use
NULL
because it indicates semantically what you mean.Remember, the point of programming isn't to tell the computer what to do. The point is to tell other humans what you're telling the computer to do.
两者都有效; 所以会:
if (ptr) { ... }
显式检查 NULL 演示了 if 的意图,因此,我认为使用以下命令进行检查有助于可维护性:
if (ptr != NULL) { ... }
Either will work; so will:
if (ptr) { ... }
Checking explicitly for NULL demonstrates intent of the if and for that reason, I think it aides maintainability to check using:
if (ptr != NULL) { ... }
if( ptr != NULL ) 比 if(ptr != 0) 读起来更好。 因此,虽然使用后者可以节省 3 次击键,但如果使用前者,将帮助你的同事在阅读你的代码时保持理智。
if( ptr != NULL ) reads better than if(ptr != 0). So, while you may save 3 keystrokes with the latter, you will help your coworkers maintain their sanity while reading your code if you use the former.
没关系。 每个专业程序员都会知道
ptr = 0
和if( !ptr )
的含义,并且它完全符合标准。 所以,做你想做的事,但无论你做什么,总是做同样的事情。It doesn't much matter. Every professional programmer will know what
ptr = 0
andif( !ptr )
means and it is perfectly compliant with the standard. So, do what you will, but whatever you do, just do the same thing all the time.