轉自:http://www.cppblog.com/cooleaf/archive/2006/05/19/7418.html
指針數組,故名思義,就是指針的數組,數組的元素是指針;
數組指針,同樣,就是直想數組的指針。
簡單舉例說明:
int *p[2]; 首先聲明瞭一個數組,數組的元素是int型的指針。
int (*p)[2]; 聲明瞭一個指針, 指向了一個有兩個int元素的數組。
其實這兩種寫法主要是因爲運算符的優先級, 因爲[]的優先級比*高。所以第一種寫法,p先和[]結合,所以是一個數組,後與*結合,是指針。後一種寫法同理。
指針數組如下處理就會很清楚:
typedef int* intPtr;
intPtr p[2];
一目瞭然,所以爲了避免迷惑,做適當的typedef也是很有必要的。
同理,數組指針也可以作類似處理:
typedef int intArray2[2];
intArray2 * p;
和原來的聲明都是等價的。
個人建議編程過程中採用typedef來進行類型定義,這樣程序看起來會清晰很多。舉個例子說明:
數組指針,元素爲指向數組的指針:)
首先,指向數組的指針爲:
typedef intArray2* intArray2Ptr;
然後是一個數組的元素:
typede intArray2Ptr intArray2PtrArr3[3];
最後數組的指針:
intArray2PtrArr3 *p;
指針數組和數組指針(轉)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.