C++ NULL指針
一個很好的做法:在冇有確切的地址的情況下,將一個指針變量分配NULL,這樣做是在變量聲明的時,分配NULL指針被稱為空指針。
NULL指針是一個常數為零在幾個標準庫,其中包括的iostream定義的值。考慮下麵的程序:
#include <iostream> using namespace std; int main () { int *ptr = NULL; cout << "The value of ptr is " << ptr ; return 0; }
當上述代碼被編譯和執行時,它產生了以下結果:
The value of ptr is 0
在大多數操作係統中,程序不允許訪問存儲器的地址0,因為該存儲器是由操作係統保留。然而,存儲器地址0具有特彆重要的意義;它標誌著,該指針不指向一個訪問的存儲器位置。但按照慣例,如果一個指針包含空(零)值,則假定為指向什麼。
要檢查一個空指針,可以使用if語句如下:
if(ptr) // succeeds if p is not null if(!ptr) // succeeds if p is null
因此,如果所有未使用的指針被賦予null值,並且避免使用空指針,能避免未初始化的指針意外誤操作。很多時候,未初始化的變量舉行一些垃圾值,並且變得難以調試程序。