nullptr
,指针字面量 (自 C++11 起)
来自 cppreference.com
内容 |
[编辑] 语法
nullptr
|
|||||||||
[编辑] 解释
关键字 nullptr
表示指针字面量。它是一个 右值,类型为 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 的类型 (typedef) |
C 文档 for nullptr
|