1.型別說明
int *b; //定義乙個int型指標變數
int *p[3]; //定義乙個int型指標陣列的變數
int (*)[3] 或 int(*d)[3]; //定義乙個陣列指標變數
2.初始化賦值
假設二維陣列為:
int a[3][3] =,,};
(1)用指標b表示二維陣列時為:
int *b=a[0]; //將指標b指向a的首元素位址
二維陣列的表示方式為:
a[i][j]=(b+3i+j) ; //因為二維陣列也是存放在連續位址上,只需要移動指標位置就可以了
(2)用指向整形陣列指標的變數c來表示:
int (*c)[3]=a; //將它指向a的首位址,數字中每乙個單元代表a的每一行
二維陣列的表示方式為:
a[i][j]=((c+i)+j); //(c+i)+j表示a[i][j]位址,而(*(c+i)+j);表示a[i][j]的值
(3)int型指標陣列使用方式:
p[0]=&a[0][0]; p[1]=&a[0][1]; p[2]=&a[0][2] ; //指向3個整形變數
需要單獨賦值,p[0] , p[1] , p[2]並不是連續給定。
二維陣列指標表示,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 而利用二維陣列線性儲存的特性,可以將二維陣列當作一維指標方便的在函式之間傳遞 如 將乙個二維陣列賦值給乙個動態二維陣列,引數設定為一維指...