沒有初始化的指針變量是危險的。可是如果在聲明變量之后,找不到合適的地址進行初始化,我們該怎么辦呢?顯然,隨便找個地址對指針變量做初始化是不負責任的。 在這里,我們引入一個特殊的地址——NULL。它的意思是“空”,即指針沒有指向任何東西。比如: int *iptr=NULL; 要注意的是,C++是大小寫敏感的,NULL與null是不同的。所以,在使用的時候必須要大寫。
下面,我們來看一段程序,實踐一下如何使用指針變量:(程序8.2) #include "iostream.h" int main() { int i=3; int *iptr=&i; int **iptrptr=&iptr;//iptr也是變量,也能夠獲取它的地址 cout <<"Address of Var i=" <<iptr <<endl;//輸出iptr存儲的內容,即i在內存中的地址 cout <<"Data of Var i=" <<*iptr <<endl;//輸出iptr所指向的變量 cout <<"Address of Pointer iptr=" <<iptrptr <<endl;//輸出iptr在內存中的地址 cout <<"Address of Var i=" <<*iptrptr <<endl;//輸出iptrptr所指向的變量,即iptr *iptr=2+*iptr;//*iptr可以作左值 cout <<"Data of Var i=" <<*iptr <<endl; return 0; }
運行結果: Address of Var i=0x0012FF7C Data of Var i=3 Address of Pointer iptr=0x0012FF78 Address of Var i=0x0012FF7C Data of Var i=5