C++ Null 指針
在變量聲明的時(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)試。
更多建議: