c語言之指向二維陣列元素的指標變數

2022-06-11 17:54:09 字數 1053 閱讀 1601

如何使用指針對二維陣列進行遍歷?

首先我們需要明確的是:二維陣列在記憶體中是連續的,比如乙個二維陣列int a[2][3]=,可以視作是兩個一維陣列構成的,即int a0[3] =,int a1[3] = ,我們知道,一維陣列在記憶體中是連續的一塊記憶體,並且陣列名a0,a1代表的就是該陣列首元素的位址,而正因為二維陣列的記憶體中的位址也是連續的,所以a1的首元素的位址就為a0陣列首元素的位址+a0中元素的個數,因此,我們就可以通過讓指標不斷+1來訪問其中的每乙個元素,不用再考慮行與列的限制。

#include#include

//利用指標來遍歷二維陣列

void printarr(int *p,int m,int

n) printf(

"%d

", *(p +i));

}putchar('\n

');}int

main() , };

int m = sizeof(a) / sizeof(a[0

]);

int n = sizeof(a[0]) / sizeof(a[0][0

]); printf(

"陣列的行:%d 陣列的列:%d\n

",m, n);

printarr(a[

0],m,n);

system(

"pause");

return0;

}

輸出:

需要注意以下幾點:

(1)使用int m = sizeof(a) / sizeof(a[0]); int n = sizeof(a[0]) / sizeof(a[0][0]);來獲取陣列的行與列。

(2)傳入printarr中的是二維陣列首元素的位址,也就是第乙個一維陣列的首元素的位址,也就是其名字。

(3)遍歷時讓指標p一直向後移動到二維陣列的末尾,可以看做將二維陣列展開成一維陣列,再計算移動的次數。

(4)當訪問到的位置是列的整數倍時,進行換行,方便顯示。

C語言二維陣列指標(指向二維陣列的指標)

二維陣列的定義 int matrix 見圖的操作那篇文章裡面的定義 或者這篇文章提供了另外一種方法。二維陣列在概念上是二維的,有行和列,但在記憶體中所有的陣列元素都是連續排列的,它們之間沒有 縫隙 以下面的二維陣列 a 為例 int a 3 4 從概念上理解,a 的分布像乙個矩陣 0 1 2 3 4...

c語言之指標(指向陣列元素的指標與指向陣列的指標)

指向陣列元素的指標 include define m 3 main int s m i,j void max int p1,int p2 printf matrix a n for i 0 ifor j 0 j printf 4d a i j printf n max s,a 0 必須為實參必須a ...

指向二維陣列元素的指標變數

1 指向陣列元素的指標變數 例1.有乙個3x4的二維陣列,要求用指向元素的指標變數輸出二維陣列各元素的值.編寫程式 1 include 2 intmain 3 5int p 6for p a 0 p a 0 12 p a 0 代表列指標的起點,p依次指向下乙個元素 712 printf 4d p 1...