C++空指標



如果您沒有確切的地址要賦值,那麼將指標變數賦值為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

因此,如果所有未使用的指標都賦予空值,並且避免使用空指標,則可以避免意外濫用未初始化的指標。許多時候,未初始化的變數包含一些無用值,這使得程式除錯變得困難。

cpp_pointers.htm
廣告