gpt4 book ai didi

c++ - 为什么我可以在不包含 STL 的情况下使用 nullptr?

转载 作者:可可西里 更新时间:2023-11-01 15:48:27 25 4
gpt4 key购买 nike

C++ nullptrstd::nullptr_t 类型。

为什么像

这样的程序
int main() {
int* ptr = nullptr;
}

仍然有效,尽管它不包含任何 STL 库?

最佳答案

在 C++11 中,他们想添加一个关键字来替换宏 NULL(基本上定义为 #define NULL 0),因为它是一个核心概念,并且由于一些恼人的错误,当您被迫使用 0 作为您的空指针常量时,您会遇到一些恼人的错误。

建议的关键字数量。搜索大型代码库以确保关键字未被使用,并且它仍然描述了他们想要的内容(空指针常量)。

nullptr 被发现足够罕见且足够令人回味。

默认情况下,nullptr 的类型没有指定关键字名称,因为大多数程序都不需要。您可以通过 decltype(nullptr) 或包含 std header 并使用 std::nullptr_t 获取它。

关于c++ - 为什么我可以在不包含 STL 的情况下使用 nullptr?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39080709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com