名稱空間
變體
操作

nullptr,空指標字面量 (C++11 起)

來自 cppreference.com
< cpp‎ | 語言
 
 
C++ 語言
 
 

目錄

[編輯] 語法

nullptr

[編輯] 解釋

關鍵字 nullptr 表示空指標字面量。它是一個型別為 std::nullptr_t純右值。存在從 nullptr 到任何指標型別和任何成員指標型別的空指標值的 隱式轉換。對於任何空指標常量也存在類似的轉換,其中包括型別為 std::nullptr_t 的值以及宏 NULL

[編輯] 關鍵詞

nullptr

[編輯] 示例

演示 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