nullptr, das Zeiger-Literal (seit C++11)
Von cppreference.com
Inhalt |
[bearbeiten] Syntax
nullptr
|
|||||||||
[bearbeiten] Erklärung
Das Schlüsselwort nullptr bezeichnet das Zeiger-Literal. Es ist ein prvalue vom Typ std::nullptr_t. Es gibt implizite Konvertierungen von nullptr zu Nullzeigerwerten jedes Zeigertyps und jedes Zeigers auf ein Mitglied. Ähnliche Konvertierungen gibt es für jede Nullzeigerkonstante, die Werte vom Typ std::nullptr_t sowie das Makro NULL einschließt.
[bearbeiten] Schlüsselwörter
[bearbeiten] Beispiel
Demonstriert, dass nullptr die Bedeutung einer Nullzeigerkonstante beibehält, auch wenn es kein Literal mehr ist.
Führen Sie diesen Code aus
#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 }
Ausgabe
Function g called Function g called Function g called Function g called
[bearbeiten] Referenzen
- C++23 Standard (ISO/IEC 14882:2024)
- 7.3.12 Zeigerkonvertierungen [conv.ptr]
- C++20 Standard (ISO/IEC 14882:2020)
- 7.3.12 Zeigerkonvertierungen [conv.ptr]
- C++17 Standard (ISO/IEC 14882:2017)
- 7.11 Zeigerkonvertierungen [conv.ptr]
- C++14 Standard (ISO/IEC 14882:2014)
- 4.10 Zeigerkonvertierungen [conv.ptr]
- C++11 Standard (ISO/IEC 14882:2011)
- 4.10 Zeigerkonvertierungen [conv.ptr]
[bearbeiten] Siehe auch
| implementierungsdefinierte Nullzeigerkonstante (macro constant) | |
| (C++11) |
der Typ des Nullzeiger-Literals nullptr (typedef) |
| C-Dokumentation für nullptr
| |