[C/C++11]_[初级]_[nullptr的简单介绍和使用]

场景

1.C++11引入了一个空指针类型 nullptr, 他是一个内置类型. 并不是数值0.

2.当一个函数的重载参数是 int 或者 int* 时, NULL都可以作为这个函数的参数, 这样会搞混淆,甚至会编译错误. 当 NULL 代表 0 时并不能很好的表达是一个指针, 容易出错. 现在C++11 的 nullptr 可以编译这个问题.

3.事实上大部分 Windows平台上对 NULL的定义就是 0

#define NULL    0

说明

1.nullptr的类型是 std::nullptr_t, 而且这个类型名并不是关键字, 因为这个类型是通过定义得来的.

typedef decltype(nullptr) nullptr_t;

2.nullptr和 各种指针类型的转换是隐式的. 实际上NULL可以强转成 nullptr.

f((std::nullptr_t)NULL);
f(static_cast<std::nu

你可能感兴趣的:(C++语言特性和标准库)