nullptr

Version >= C++ 11

一个关键字表示一个空指针常数。它可以转换为任何指针或指向成员的类型,从而产生结果类型的空指针。

Widget* p = new Widget();
delete p;
p = nullptr; // set the pointer to null after deletion

请注意,nullptr 本身不是指针。nullptr 的类型是一种称为 std::nullptr_t 的基本类型。

void f(int* p);

template <class T>
void g(T* p);

void h(std::nullptr_t p);

int main() {
    f(nullptr); // ok
    g(nullptr); // error
    h(nullptr); // ok
}