C++ Puntero nulo

C++ 指针Punteros en C++

Al declarar una variable, si no hay una dirección exacta para asignar, asignar un valor NULL a una variable de puntero es una buena práctica de programación. Un puntero al que se le asigna un valor NULL se llamaVacíopuntero.

El puntero NULL es una constante definida en la biblioteca estándar con valor cero. Vea el siguiente programa:

Ejemplos

#include <iostream>

using namespace std;

int main ()
{
   int  *ptr = NULL;

   cout << "El valor de ptr es " << ptr ;
 
   return 0;
}

Cuando el código anterior se compila y ejecuta, produce los siguientes resultados:

ptr 的值是 0

En la mayoría de los sistemas operativos, el programa no puede acceder a la memoria en la dirección 0, porque esa memoria está reservada por el sistema operativo. Sin embargo, la dirección de memoria 0 tiene un significado especial: indica que el puntero no apunta a una ubicación de memoria accesible. Pero por convención, si un puntero contiene un valor nulo (valor cero), se asume que no apunta a nada.

Para comprobar un puntero nulo, puede usar una instrucción if, como se muestra a continuación:

if(ptr)     /* 如果 ptr 非空,则完成 */
if(!ptr)    /* 如果 ptr 为空,则完成 */

Por lo tanto, si a todos los punteros no utilizados se les asigna el valor nulo, y se evita usar punteros nulos, se puede prevenir el mal uso de un puntero no inicializado. Con frecuencia, las variables no inicializadas contienen valores basura, lo que dificulta la depuración del programa.

C++ 指针Punteros en C++

Otras extensiones