Latest web development tutorials

C ++ de puntero nulo

C ++ punteros C ++ punteros

En el momento de las declaraciones de variables, si no se puede asignar la dirección exacta, asignar un valor NULL para la variable puntero es una buena práctica de programación. valor de puntero NULL Fu se llama un punteronulo.

Un puntero NULL se define en la biblioteca estándar cero constantes. Considere el siguiente programa:

#include <iostream>

using namespace std;

int main ()
{
   int  *ptr = NULL;

   cout << "ptr 的值是 " << ptr ;
 
   return 0;
}

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

ptr 的值是 0

En la mayoría de los sistemas operativos, el programa no permite el acceso a la dirección de memoria 0, porque la memoria está reservada para el sistema operativo. Sin embargo, la dirección de memoria 0 tiene un significado especial, indica que el puntero no apunta a una posición de memoria accesible. Pero de acuerdo con la convención, si el puntero contiene un valor nulo (valor cero), se supone que no apunta a nada.

Para comprobar si hay un puntero nulo, se puede utilizar la sentencia if, de la siguiente manera:

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

Por lo tanto, si todos los punteros no utilizados se les asigna un valor nulo, evitando al mismo tiempo el uso de un puntero nulo, es posible prevenir el mal uso de un puntero no inicializado. En muchos casos, las variables no inicializadas hay algún valor de basura, hace que el programa difícil de depurar.

C ++ punteros C ++ punteros