指標 二維陣列元素引用

2021-10-13 12:36:00 字數 1763 閱讀 2112

1.定義

2.陣列指標和指標陣列的區別

1.二維陣列可以理解為是乙個一維陣列,不過每個陣列元素又是乙個一維陣列

int a[2][3]=,};

可以理解為,二維陣列只有兩個元素,即a[0]和a[1],只不過元素型別為一維陣列

指向二維陣列的指標(行指標)

格式:型別 (*指標名) [n]

n為陣列的第二維長度

2.二維陣列指標與指標型陣列的區別

int a[3] = , };

int

*p0[3]

= a;

//錯誤,將乙個二維陣列賦給指標型陣列

int

(*p1)[3

]= a;

//正確

陣列指標(也稱行指標)

定義 int (*p)[n];

()優先順序高,首先說明p是乙個指標,指向乙個整型的一維陣列,這個一維陣列的長度是n,也可以說是p的步長。也就是說執行p+1時,p要跨過n個整型資料的長度。

如要將*

*二維陣列*

*賦給一指標,應這樣賦值:

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][ ]

比如要表示陣列中i行j列乙個元素:

*

(p[i]

+j)、*(*

(p+i)

+j)、(

*(p+i)

)[j]、p[i]

[j]

優先順序:()>>*

出處:

3.實現乙個3*4階矩陣轉置 指標為形參

#define _crt_secure_no_warnings

#include

#include

//定義乙個3行4列的二維陣列arr。

//定義乙個函式func()完成矩陣轉置,以陣列指標作為引數。

//在func()函式內部,使用for迴圈完成矩陣轉置

void

func

(int

(*pa)[4

],int(

*pb)[3

],int x,

int y)

/*--------------------------end-------------------*/

printf

("轉置:\n");

另有:陣列元素訪問 方法總結

二維陣列指標表示,C語言指標引用二維陣列詳解

指標變數可以指向一維陣列中的元素,當然也就可以指向二維陣列中的元素。但是在概念和使用方法上,二維陣列的指標比一維陣列的指標要複雜一些。要理解指標和二維陣列的關係首先要記住一句話 二維陣列就是一維陣列,這句話該怎麼理解呢?假如有乙個二維陣列 int a 3 4 其中,a 是二維陣列名。a 陣列包含 3...

二維陣列 二維陣列和指標

include using namespace std int main 如上面這段程式所示,通過取位址符 指標 p 獲得了變數 a 的位址,那麼解引用符 就可以從 p 中得到變數 a 的值。也就是說,p a和 p a是等價的。p 是變數 a 的位址,從 p 中就可以取出 a 的值。反之,能從 p ...

二維陣列與二維指標

1.二維陣列的儲存是線性的,可以通過一維指標的方式訪問。如一下 int map 5 5 int mapd map 0 0 則 map i j mapd i 5 j 而利用二維陣列線性儲存的特性,可以將二維陣列當作一維指標方便的在函式之間傳遞 如 將乙個二維陣列賦值給乙個動態二維陣列,引數設定為一維指...