陣列指標 與 指標陣列

2021-06-28 02:36:27 字數 469 閱讀 4091

陣列指標 與 指標陣列 是一對容易混淆的概念。

陣列指標,例如: int (*p)[n];

為了好理解,我將它稱為: 陣列型的指標。

如果說是 int 型的指標,則 p++ 時 p 的位址增加 4;陣列型的 p,執行 p++,則 p 的位址增加 n * 4。

例如: 

int a[3][4];

int (*p)[4]; // 該語句是定義乙個陣列指標,指向含4個元素的一維陣列

p = a;       // 將該二維陣列的首位址賦給p,也就是a[0]或&a[0][0]

p++;         // 該語句執行過後,也就是 p = p + 1; p 跨過行 a[0] 指向了行 a[1]

指標陣列,例如: int *p[n];

為了好理解,我將它稱為: 指標型的陣列。

如果說是 int 型的陣列,則陣列的每個元素都是 int 型;這個也一樣,其每個元素都是指標。

指標與陣列,指標陣列 陣列指標

int a 10 print n a p,a p a,a print n a 1 p,a 1 p a 1,a 1 a做乙個指標,步長為4,指向乙個元素,a做乙個指標,步長為40,指向乙個維陣列 int b 3 4 print n b p,b p,b p b,b,b print n b 1 p,b 1...

陣列 指標陣列與陣列指標

一 陣列型別 int a 10 printf a d,a 1 d n a,a 1 printf a d,a 1 d n a,a 1 輸出結果 2 陣列元素的首位址是常量,不能修改,這是為了釋放記憶體空間所必需的,否則找不到釋放記憶體空間的首位址了 3 定義乙個陣列型別 定義陣列型別的格式如下 typ...

指標陣列與陣列指標

1.指標陣列 指標陣列中每乙個元素都是乙個指標,也既是存放字串的首位址。所以指標陣列適合處理若干個長度不等的字串。定義的一般形式為 型別說明符 指標陣列名 陣列長度 例如 int p 3 宣告乙個陣列,指標陣列p,由3個int型別指標變數元素組成 從運算子的優先順序分析,由於 的優先順序大於 所以p...