nullptr
,指针字面量 (C++11 起)
来自 cppreference.cn
目录 |
[编辑] 语法
nullptr
|
|||||||||
[编辑] 解释
关键字 nullptr
表示指针字面量。它是 prvalue,类型为 std::nullptr_t。存在从 nullptr
到任何指针类型和任何指向成员类型的空指针值的隐式转换。对于任何空指针常量都存在类似的转换,其中包括 std::nullptr_t 类型的值以及宏 NULL。
[编辑] 关键字
[编辑] 示例
演示了即使 nullptr
不再是字面量,它仍然保留空指针常量的含义。
运行此代码
#include <cstddef> #include <iostream> template<class T> constexpr T clone(const T& t) { return t; } void g(int*) { std::cout << "Function g called\n"; } int main() { g(nullptr); // Fine g(NULL); // Fine g(0); // Fine g(clone(nullptr)); // Fine // g(clone(NULL)); // ERROR: non-literal zero cannot be a null pointer constant // g(clone(0)); // ERROR: non-literal zero cannot be a null pointer constant }
输出
Function g called Function g called Function g called Function g called
[编辑] 参考
- C++23 标准 (ISO/IEC 14882:2024)
- 7.3.12 指针转换 [conv.ptr]
- C++20 标准 (ISO/IEC 14882:2020)
- 7.3.12 指针转换 [conv.ptr]
- C++17 标准 (ISO/IEC 14882:2017)
- 7.11 指针转换 [conv.ptr]
- C++14 标准 (ISO/IEC 14882:2014)
- 4.10 指针转换 [conv.ptr]
- C++11 标准 (ISO/IEC 14882:2011)
- 4.10 指针转换 [conv.ptr]
[编辑] 参见
实现定义的空指针常量 (宏常量) | |
(C++11) |
空指针字面量的类型 nullptr (类型别名) |
C 文档 关于 nullptr
|