【发布时间】:2009-03-30 02:14:38
【问题描述】:
复制
在处理NULL 指针时,可以这样做
if(ptr != NULL){ ... }
or this
if(ptr != 0){ ... }
在C++ 中是否有理由偏爱其中之一?
【问题讨论】:
-
StackOverflow 上已经回答了同样的问题:Do you use NULL or 0 (zero) for pointers in C++?
在处理NULL 指针时,可以这样做
if(ptr != NULL){ ... }
or this
if(ptr != 0){ ... }
在C++ 中是否有理由偏爱其中之一?
【问题讨论】:
使用NULL,因为它在语义上表明了你的意思。
请记住,编程的目的不是告诉计算机要做什么。重点是告诉其他人你要告诉计算机做什么。
【讨论】:
0,这是一个众所周知的 C++ 习语,不应该让任何人感到困惑!
两者都行;也一样:
if (ptr) { ... }
明确检查 NULL 表明了 if 的意图,因此,我认为它有助于检查使用的可维护性:
if (ptr != NULL) { ... }
【讨论】:
if(ptr != NULL) 比 if(ptr != 0) 读起来更好。因此,虽然您可以使用后者节省 3 次击键,但如果您使用前者,您将帮助您的同事在阅读您的代码时保持理智。
【讨论】:
没关系。每个专业程序员都会知道ptr = 0 和if( !ptr ) 是什么意思,并且完全符合标准。所以,做你想做的事,但无论你做什么,始终做同样的事情。
【讨论】: