嚴格地說,一個指針是一個地址,是一個常量。而一個指針變量卻可以被賦予不同的指針值,是變量。但常把指針變量簡稱為指針。為了避免混淆,我們中約定:“指針”是指地址,是常量,“指針變量”是指取值為地址的變量。定義指針的目的是為了通過指針去訪問內存單元。 既然指針變量的值是一個地址,那么這個地址不僅可以是變量的地址,也可以是其它數據結構的地址。在一個指針變量中存放一個數組或一個函數的首地址有何意義呢
為了表示指針變量和它所指向的變量之間的關系,在程序中用“*”符號表示“指向”,例如,i_pointer代表指針變量,而*i_pointer是i_pointer所指向的變量。 因此,下面兩個語句作用相同: i=3; *i_pointer=3; 第二個語句的含義是將3賦給指針變量i_pointer所指向的變量。
(1) 指針變量初始化的方法 int a; int *p=&a; (2) 賦值語句的方法 int a; int *p; p=&a;
被賦值的指針變量前不能再加“*”說明符,如寫為*p=&a 也是錯誤的。
|
|