目录
一、背景
二、nullptr
三、注意事项
在 C 语言里,我们给指针赋值一般都是用 NULL 的,对吧?但是,在下面这个场景就会产生问题了。
void f(int)
{
cout<<"f(int)"<
为什么呢?其实就是因为在 C/C++ 里 NULL 被定义成 0 了。虽然 0 也可以表示一个地址的值,但是 C++ 在传参时默认把 0 看成 int 类型的,如果要让程序认为 0 是指地址,那么就只能做类型强制转换了。
为了解决上述(即函数重载)问题,C++ 引入了 nullptr 这个关键字来特指指针空值。
(1)在使用nullptr表示指针空值时,不需要包含头文件,因为 nullptr 是 C++11 作为新关键字引入的。
(2)在C++11中,sizeof(nullptr) 与 sizeof((void*)0)所占的字节数相同。
(3)为了提高代码的可读性,在后续表示指针空值时建议最好使用nullptr。