对于NULL指针,我应该使用NULL还是0?

时间:2009-03-30 02:14:38

标签: c++ pointers null

复制

  

Do you use NULL or 0 for pointers in C++?

在处理NULL指针时,可以执行此操作

if(ptr != NULL){ ... }

or this

if(ptr != 0){ ... }

是否有理由在C++中选择一个而不是另一个?

4 个答案:

答案 0 :(得分:16)

使用NULL,因为它表示语义上你的意思。

请记住,编程的目的不是告诉计算机该做什么。关键是告诉其他人你告诉计算机要做什么。

答案 1 :(得分:5)

严格来说无关紧要:要么会奏效。所以会:

if (ptr) { ... }

显式检查NULL表明if的意图,因此我认为它有助于使用以下方法检查可维护性:

if (ptr != NULL) { ... }

答案 2 :(得分:3)

if(ptr!= NULL)读取优于if(ptr!= 0)。因此,虽然您可以使用后者保存3次击键,但如果您使用前者,您将帮助您的同事保持理智,同时阅读您的代码。

答案 3 :(得分:3)

没关系。每个专业程序员都会知道ptr = 0if( !ptr )的含义,并且完全符合标准。所以,做你想做的事,但无论你做什么,都要一直做同样的事情。