Latest web development tutorials

C ++ Null Pointer

C ++ pointer C ++ pointer

Pada saat deklarasi variabel, jika tidak alamat yang tepat dapat diberikan, menetapkan nilai NULL untuk variabel pointer adalah praktek pemrograman yang baik. nilai pointer fu NULL disebut pointernol.

Sebuah pointer NULL didefinisikan di perpustakaan standar nol konstanta. Perhatikan program berikut:

#include <iostream>

using namespace std;

int main ()
{
   int  *ptr = NULL;

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

Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:

ptr 的值是 0

Pada kebanyakan sistem operasi, program tidak memungkinkan akses ke alamat memori 0, karena memori dicadangkan untuk sistem operasi. Namun, alamat memori 0 memiliki arti khusus, itu menunjukkan bahwa pointer tidak menunjuk ke lokasi memori yang dapat diakses. Namun menurut konvensi, jika pointer berisi nilai null (nilai nol), diasumsikan bahwa itu tidak menunjuk ke sesuatu.

Untuk memeriksa null pointer, Anda dapat menggunakan jika pernyataan, sebagai berikut:

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

Oleh karena itu, jika semua pointer yang tidak terpakai ditugaskan nilai nol, sementara menghindari penggunaan pointer null, adalah mungkin untuk mencegah penyalahgunaan pointer diinisiasi. Dalam banyak kasus, variabel diinisiasi ada beberapa nilai sampah, menyebabkan program sulit untuk debug.

C ++ pointer C ++ pointer