C++ Null 指針

C++ 指針 C++ 指針

在變量聲明的時(shí)候,如果沒(méi)有確切的地址可以賦值,為指針變量賦一個(gè) NULL 值是一個(gè)良好的編程習(xí)慣。賦為 NULL 值的指針被稱為指針。

NULL 指針是一個(gè)定義在標(biāo)準(zhǔn)庫(kù)中的值為零的常量。請(qǐng)看下面的程序:

#include <iostream>

using namespace std;

int main ()
{
   int  *ptr = NULL;

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

當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:

ptr 的值是 0

在大多數(shù)的操作系統(tǒng)上,程序不允許訪問(wèn)地址為 0 的內(nèi)存,因?yàn)樵搩?nèi)存是操作系統(tǒng)保留的。然而,內(nèi)存地址 0 有特別重要的意義,它表明該指針不指向一個(gè)可訪問(wèn)的內(nèi)存位置。但按照慣例,如果指針包含空值(零值),則假定它不指向任何東西。

如需檢查一個(gè)空指針,您可以使用 if 語(yǔ)句,如下所示:

if(ptr)     /* 如果 p 非空,則完成 */
if(!ptr)    /* 如果 p 為空,則完成 */

因此,如果所有未使用的指針都被賦予空值,同時(shí)避免使用空指針,就可以防止誤用一個(gè)未初始化的指針。很多時(shí)候,未初始化的變量存有一些垃圾值,導(dǎo)致程序難以調(diào)試。

C++ 指針 C++ 指針