小编典典

我可以使用 if (pointer) 而不是 if (pointer != NULL) 吗?

all

NULL通过简单地编写if(pointer)或我必须使用来检查指向不存在的指针是否安全if(pointer != NULL)


阅读 62

收藏
2022-07-18

共1个答案

小编典典

你可以; 空指针被隐式转换为布尔值 false 而非空指针被转换为 true。来自 C++11 标准的 布尔转换部分:

算术、无作用域枚举、指针或指向成员类型的指针的纯右值可以转换为类型的纯右值 bool。零值、空指针值或空成员指针值转换为 false;
任何其他值都转换为 true . 类型的纯右值 std::nullptr_t 可以转换为类型的纯右值 bool ;结果值为 false

2022-07-18