C++ nullptr 类型为 std::nullptr_t 。
为什么程序喜欢
int main() {
int* ptr = nullptr;
}
尽管它不包含任何STL库,但仍然可以使用?
最佳答案
在C++ 11中,他们想要添加一个关键字来替换宏NULL
(基本上定义为#define NULL 0
),这既是因为它是一个核心概念,又是因为当您被迫使用0
作为您的代码时会遇到一些烦人的错误。空指针常量。
建议使用多个关键字。在大型代码库中进行搜索以确保未使用该关键字,并且仍在描述它们想要的内容(空指针常量)。
发现nullptr
足够稀有并且令人回味。
缺省情况下,没有给nullptr
类型一个关键字名称,因为大多数程序不需要此名称。您可以通过decltype(nullptr)
或包括std
header 并使用std::nullptr_t
来获取它。