指針變量的類型說明
對指針變量的類型說明包括三個內容:
(1)指針類型說明,即定義變量為一個指針變量;
(2)指針變量名;
(3)變量值(指針)所指向的變量的數據類型。
其一般形式為: 類型說明符 *變量名;
其中,*表示這是一個指針變量,變量名即為定義的指針變量名,類型說明符表示本指針變量所指向的變量的數據類型。
指針變量的初始化
指針變量同普通變量一樣,使用之前不僅要定義說明, 而且必須進行初始化。未初始化的指針變量不能使用, 否則將造成系統混亂,甚至死機。
指針變量的初始化只能賦予地址, 決不能賦予任何其它數據,否則將引起錯誤。在C語言中, 變量的地址是由編譯系統分配的,對用戶完全透明,用戶不知道變量的具體地址。
注意:
不允許把一個數賦予指針變量,故下面的賦值是錯誤的: int *p;p=1000;
聲明一個指針變量並不會自動分配任何的內存,對指針執行間接訪問前,指針必須初始化:或者使它指向現有的內存,或者為其分配動態內存。
NULL指針就是不指向任何東西的指針,它可以賦值給另一個指針,永遠表示這個指針不指向任何值。對於NULL指針執行任何的間接訪問操作的后果是不確定的,由編譯器決定。
除了NULL指針之外,再沒有任何內建的記法來表示指針常量,因為無法預知編譯器會把變量放在什么位置。
