NULL通过简单地编写if(pointer)或我必须使用来检查指向不存在的指针是否安全if(pointer != NULL)?
NULL
if(pointer)
if(pointer != NULL)
你可以; 空指针被隐式转换为布尔值 false 而非空指针被转换为 true。来自 C++11 标准的 布尔转换部分:
算术、无作用域枚举、指针或指向成员类型的指针的纯右值可以转换为类型的纯右值 bool。零值、空指针值或空成员指针值转换为 false; 任何其他值都转换为 true . 类型的纯右值 std::nullptr_t 可以转换为类型的纯右值 bool ;结果值为 false 。
bool
false
true
std::nullptr_t