nullptr是C++11引入的,与C语言中的区别看下面例子:
void f(int)
{
cout << "f(int)" << endl;
}
void f(int*)
{
cout << "f(int*)" << endl;
}
int main()
{
int* p1 = NULL;
int* p2 = nullptr;
f(0);
f(NULL);
f(nullptr); //会自动匹配int*函数
return 0;
}
运行结果:
若是NULL,会不知道该调用哪一个函数,而如果是nullptr会自动匹配int*类型的函数。
也可参考这篇文章C++空指针可以用nullptr代替NULL