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来获取它。

10-08 07:52
查看更多