【发布时间】:2013-07-20 06:35:33
【问题描述】:
通过简单地编写if(pointer) 来检查指向不是NULL 的指针是否安全,还是我必须使用if(pointer != NULL)?
【问题讨论】:
-
事实是,如果您要使用显式检查,那么与
0或nullptr进行测试同样有效——而且通常是首选。 (NULL是 C'ism,需要包含头文件。) -
@danijar 你可以在现代 C++ 中使用 nullptr。
-
@cHao “力求与 C 兼容”的意义何在?
-
@danijar: 是的,你不应该在 C++ 中使用
NULL,因为NULL是依赖于实现的宏,它可能会给你带来模棱两可的行为。 -
虽然这不是 'if' 的情况,但请参阅这个 ideone 现场演示,了解为什么在 C++ 中应避免使用“NULL”和“0”指针:ideone.com/tbvXNs
标签: c++ pointers if-statement null null-pointer