c ++中if(指针)与if(指针!= NULL)之间的区别,cpplint问题

ash*_*ish 9 c++ pointers coding-style cpplint

我已经检查了这篇文章我可以使用if(指针)而不是if(指针!= NULL)吗?网上还有其他一些帖子.

但它没有说两个陈述之间有任何区别.

问题:当我在cpp代码上运行cpplint.py时,我发现了检查指针为NULL的问题.我更喜欢用简单的方法来检查

if(pointer)         //statement1
Run Code Online (Sandbox Code Playgroud)

但是cpplint说你应该检查一下

if(pointer != NULL)        //statement2
Run Code Online (Sandbox Code Playgroud)

所以我只想知道,statement2statement1有什么好处吗?是否存在一些语句可能会产生问题?

工作:据我所知,这两个陈述的工作没有区别.它只是改变了编码风格.

我更喜欢使用like statement1,因为

  • 它简单易读
  • 没有张力=错误(==)在比较中错误地超过了()

但是cpplint正在提出这个问题,那么我可能会有一些好处.

注意: Java也不支持statement1.

Jen*_*edt 6

不,如果pointer真的是指针类型没有区别,那么这里的一切都是编码风格的问题.编码风格又取决于不同社区的习惯,因此不能提出一般性建议.

我个人更喜欢第一个,因为它更短,更重要,避免使用伪宏NULL.

在C中NULL可以是非常不同的东西(整数或指针),而在C++中,它的使用现在甚至已被弃用.你应该至少使用nullptr那里.