指標變數

電子小饅頭發表於2020-12-23

 指標變數廣義上說,常說的“指標”隱含兩個東西,一個是指標變數,另一個是指標常量。我們一般都是統稱它們為指標,在大多數情況下,指標指的都是指標變數。如果指標用得很熟悉的話,沒有必要對它們做嚴格區分。

 

指標變數和普通變數一樣,都是用於存放資料的,只是指標變數存放的資料很特殊,是為存地址。一般情況下,如果不考慮指標強制轉換的話,我們要求某個型別地址必須放到對應型別的指標變數中,如下所示。

int a=10;

int *p=&a;// a空間的地址假設為0x07080345

以上兩句話,對於有C語言基礎的同學來說,再簡單不過了,如下圖所示。

 

 從上圖中可以看出,指標變數p和普通變數a之間沒有本質區別,都是變數空間放了一個數值,只是p裡面的數值比較特殊,是a空間的地址,它指向了空間a。打個比方,一張名片好比就是變數p,名片上記錄了公司的地址,這個地址就指向了公司的空間,這時候就說名片指向了公司的空間。

必須搞清楚的是, p指向了空間a,本質是p裡面存放的地址指向了空間a,只是往往簡單說成“指標p指向了空間a"。如果準確地講,應該表述為“指標變數p裡面存放的地址指向了空間a"。

 

相關文章