C++入门——指针空值 nullptr (C++11支持)

目录

一、背景

二、nullptr

 三、注意事项


一、背景

在 C 语言里,我们给指针赋值一般都是用 NULL 的,对吧?但是,在下面这个场景就会产生问题了。

void f(int)
{
    cout<<"f(int)"<

可是,结果却是这样的:
C++入门——指针空值 nullptr (C++11支持)_第1张图片C++入门——指针空值 nullptr (C++11支持)_第2张图片

 

 为什么呢?其实就是因为在 C/C++ 里 NULL 被定义成 0 了。虽然 0 也可以表示一个地址的值,但是 C++ 在传参时默认把 0 看成 int 类型的,如果要让程序认为 0 是指地址,那么就只能做类型强制转换了。

二、nullptr

为了解决上述(即函数重载)问题,C++ 引入了 nullptr 这个关键字来特指指针空值。

C++入门——指针空值 nullptr (C++11支持)_第3张图片

 

 三、注意事项

(1)在使用nullptr表示指针空值时,不需要包含头文件,因为 nullptr 是 C++11 作为新关键字引入的。

(2)在C++11中,sizeof(nullptr) 与 sizeof((void*)0)所占的字节数相同。

(3)为了提高代码的可读性,在后续表示指针空值时建议最好使用nullptr。

你可能感兴趣的:(c++,开发语言)