Latest web development tutorials

C ++ Null Pointer

C ++ puntatori C ++ puntatori

Al momento della dichiarazione delle variabili, se non può essere assegnato l'indirizzo esatto, assegnare un valore NULL per la variabile puntatore è una buona pratica di programmazione. Fu valore NULL pointer è chiamato un puntatorenullo.

Un puntatore NULL è definita nella libreria standard zero costanti. Si consideri il seguente programma:

#include <iostream>

using namespace std;

int main ()
{
   int  *ptr = NULL;

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

Quando il codice di cui sopra è compilato ed eseguito, produce i seguenti risultati:

ptr 的值是 0

Nella maggior parte dei sistemi operativi, il programma non consente l'accesso a indirizzo di memoria 0, perché la memoria è riservata per il sistema operativo. Tuttavia, l'indirizzo di memoria 0 ha un significato speciale, indica che il puntatore non punta a una posizione di memoria accessibile. Ma secondo la convenzione, se il puntatore contiene un valore nullo (valore zero), si presume che non punta a nulla.

Per verificare la presenza di un puntatore nullo, è possibile utilizzare l'istruzione if, come segue:

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

Pertanto, se tutti i puntatori inutilizzati viene assegnato un valore nullo, evitando l'uso di un puntatore nullo, è possibile impedire l'uso improprio di un puntatore non inizializzato. In molti casi, le variabili non inizializzate ci sono un certo valore spazzatura, causa il programma difficile da debug.

C ++ puntatori C ++ puntatori