多維陣列與指標

2021-10-01 05:22:47 字數 1137 閱讀 3895

用指標變數可以指向一維陣列中的元素,也可以指向多維陣列中的元素,但在概念和使用上,多維陣列的指標比一維陣列的指標要複雜一些。可以認為二維陣列是陣列的陣列。

例:定義:int a[3][4]=;

則二維陣列a是由3個一維陣列所組成的,設二維陣列的首行首位址為2000,

表示形式

含義位址

a二維陣列名,指向一維陣列a0,即0行首位址

2000

a[0],*[a+0],*a

0行0列元素位址

2000

a[1]+2,*[a+1]+2,&a[1][2]

1行2列元素位址

2024

*(a[1]+2),*(*(a+1)+2),a[1][2]

1行2列元素的值

元素值為13

把二維陣列分解為一維陣列a[0],a[1],a[2]之後,設p為指向二維陣列的指標變數。可定義為:int(*p)[4]。

它表示p是乙個指標變數,它指向包含四個元素的指標陣列。

p+i則指向一維陣列a[i]。

二維陣列指標變數說明的一般形式為:型別說明符(*指標變數名)【長度】

例:用指標變數輸出二維陣列元素的值。

#include #include

void

main()

;

inti,j;

int (*p)[4

]; p=a;

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

}}

例:通過輸入指定行數和列數列印出二維陣列對應的元素值。

#include #include

void

main()

;

inti,j;

int (*p)[4

]; p=a;

printf("i=

");scanf("%d

",&i);

while(i>2||i<0

)

printf("j=

");scanf("%d

",&j);

while(j>3||j<0

)

printf("%d

",*(*(a+i)+j));

}

多維陣列與指標

今天在寫遍歷二維陣列的時候,突然思考這個問題,原因在於作內層迴圈時,對指標和陣列理解不到位。雖然一直都會也寫遍歷二維陣列,但是原先從沒有想過這個問題。逃 標頭檔案 ifndef treble h define treble h includetypedef int int array 3 void ...

多維陣列與指標

用指標變數可以指向一維陣列中的元素,也可以指向多維陣列中的元素,但在概念和使用上,多維陣列的指標比一維陣列的指標要複雜一些。可以認為二維陣列是陣列的陣列。例 定義 int a 3 4 則二維陣列a是由3個一維陣列所組成的,設二維陣列的首行首位址為2000,表示形式 含義位址 a二維陣列名,指向一維陣...

指標與多維陣列小結

陣列 宣告 define size 10 int ch int get 10 int me size 表示方法ch 1 1 ch ch 0 ch 1 ch 1 get m n get m n int pz n pz m n get m n 復合標量 int 在宣告時同時使用陣列處理 include ...