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 而利用二維陣列線性儲存的特性,可以將二維陣列當作一維指標方便的在函式之間傳遞 如 將乙個二維陣列賦值給乙個動態二維陣列,引數設定為一維指...