nullptr
关键字 nullptr
指定类型 std::nullptr_t
的 null 指针常量,该类型可转换为任何原始指针类型。 尽管可以使用关键字 nullptr
而不包含任何标头,但如果代码使用类型 std::nullptr_t
,则必须通过包含标头 <cstddef>
来定义该类型。
注意
用于托管代码应用程序的 C++/CLI 中也定义了 nullptr
关键字,并且它与 ISO 标准 C++ 关键字不可互换。 如果可以使用 /clr
编译器选项(以托管代码为目标)编译代码,则在必须保证编译器使用本机 C++ 解释的任何代码行中使用 __nullptr
。 有关详细信息,请参阅 nullptr
(C++/CLI 和 C++/CX)。
备注
请避免将 NULL
或零 (0
) 用作 null 指针常量;nullptr
不仅不易被误用,并且在大多数情况下效果更好。 例如,给定 func(std::pair<const char *, double>)
,那么调用 func(std::make_pair(NULL, 3.14))
会导致编译器错误。 宏 NULL
将扩展到 0
,以便调用 std::make_pair(0, 3.14)
将返回 std::pair<int, double>
,此结果不可转换为 func
的 std::pair<const char *, double>
参数类型。 调用 func(std::make_pair(nullptr, 3.14))
将会成功编译,因为 std::make_pair(nullptr, 3.14)
返回 std::pair<std::nullptr_t, double>
,此结果可转换为 std::pair<const char *, double>
。
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈