指標陣列和陣列指標

2021-07-05 09:33:36 字數 874 閱讀 7432

看乙個例子:

#include

void main( int argc , char *argv)

int arr[4][4]=;

int (*p1) [4] ;

int *p2[4] ;

int i,j,k;

p1=arr;

//使用陣列指標的方式訪問二維陣列 arr

for ( i=0; i<4; i++)

printf ("\n");

}//使用指標陣列的方式訪問二維陣列arr

for (k=0; k<4; k++)

p2[k] = arr [k];

for ( i=0; i<4; i++)

printf("\n");

}return ;

在這裡 int *p2[4] 表示的是乙個指標陣列,說明陣列 p2 的元素是指向整形資料的指標,元素分別為 p[0],p[1],p[2],p[3],相當於定義了四個整形指標變數,p2就是陣列元素為指標的陣列,器本質為陣列。

而 int (*p1)[4],p1首先與指標結合,形成乙個指標,該指標指向的是有8個整形元素的陣列,p1即為指向陣列首元素位址的指標,其本質為指標。

指標陣列:首先它是乙個陣列,陣列的元素都是指標,陣列佔多少個位元組由陣列本身的大小決定,每乙個元素都是乙個指標,在32 位系統下任何型別的指標永遠是佔4 個位元組。它是「儲存指標的陣列」的簡稱。

陣列指標:首先它是乙個指標,它指向乙個陣列。在32 位系統下任何型別的指標永遠是佔4 個位元組,至於它指向的陣列佔多少位元組,不知道,具體要看陣列大小。它是「指向陣列的指標」的簡稱。(引用來自:

指標陣列和陣列指標

有關陣列指標和指標陣列容易混淆,本文舉例說明兩者的區別,並加以分析。基本概念 指標 inta 1 int p a 指標的指標 int p2p p 簡單陣列 intb 20 指標陣列 int p 10 指標陣列,含有10個指標元素,即每乙個元素都是乙個指標 陣列指標 int p 10 這個指標用來指向...

指標陣列和陣列指標

理解這兩個概念,當從語言學的語法角度開始,定語 名詞,即 的 語句。指標陣列 指標的陣列 陣列指標 陣列的指標。一 指標陣列 元素為指標的陣列 顧名思義,就是說的首先是乙個陣列吧,然後陣列的元素是指標而已。說明形式為 type pointer array constant1 constant2 co...

指標陣列和陣列指標

該文時自己對指標陣列用法的一點總結,還望高手指點不足原文如下 由於以前對指標陣列不太明白,所以自己寫了 乙個小的測試程式來驗證了自己的猜測,先總結如下 指標陣列,由名字就可以知道的該陣列中的成員都是為指標的。其定義的方法為 char p 5 該初定義乙個包含5個char 型別的陣列的指標,由於p本身...