Predefined null pointer constant (since C23)
From cppreference.net
Contenidos |
Sintaxis
nullptr
|
(desde C23) | ||||||||
Explicación
La palabra clave
nullptr
denota una constante predefinida de puntero nulo. Es un
no lvalue
de tipo
nullptr_t
.
nullptr
puede ser
convertido
a tipos puntero o
bool
, donde el resultado es el valor de puntero nulo de ese tipo o
false
respectivamente.
Palabras clave
Ejemplo
Demuestra que una copia de
nullptr
también puede utilizarse como constante de puntero nulo.
Ejecutar este código
#include <stddef.h> #include <stdio.h> void g(int*) { puts("Function g called"); } #define DETECT_NULL_POINTER_CONSTANT(e) \ _Generic(e, \ void* : puts("void*"), \ nullptr_t : puts("nullptr_t"), \ default : puts("integer") \ ) int main() { g(nullptr); // OK g(NULL); // OK g(0); // OK auto cloned_nullptr = nullptr; g(cloned_nullptr); // OK [[maybe_unused]] auto cloned_NULL = NULL; // g(cloned_NULL); // definido por la implementación: posiblemente OK [[maybe_unused]] auto cloned_zero = 0; // g(cloned_zero); // Error DETECT_NULL_POINTER_CONSTANT(((void*)0)); DETECT_NULL_POINTER_CONSTANT(0); DETECT_NULL_POINTER_CONSTANT(nullptr); DETECT_NULL_POINTER_CONSTANT(NULL); // definido por la implementación }
Salida posible:
Function g called Function g called Function g called Function g called void* integer nullptr_t void*
Referencias
- Estándar C23 (ISO/IEC 9899:2024):
-
- 6.4.4.6 Constantes predefinidas (p: 66)
Véase también
|
constante de puntero nulo definida por la implementación
(macro constante) |
|
|
(C23)
|
el tipo de la constante de puntero nulo predefinida
nullptr
(typedef) |
|
Documentación de C++
para
nullptr
|
|