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 的型別 (類型別名) |
C 文件 關於 nullptr
|