前提條件:
int a[10];//元素個數隨意自己定
int *p = a;//定義指標時直接初始化,也可以分為兩步:int *p; p=a;
&a[i] 等價於 a+i 等價於 &p[i] 等價於 p+i
第i+1個元素的值:a[i] 等價於 *(a+i) 等價於 p[i] 等價於 *(p+i)
前提條件:(對於二維陣列)
int a[2][3];//2行3列
a表示二維陣列的首位址,第0行的位址
a+i代表第i行的位址,但並非增加i個位元組
a[i] 或 *(a+i) 代表第i行第0列的位址
a[i]+j 或 *(a+i)+j 或 &a[i][j] 代表第i行第j列的位址
行指標指向的內容:
*(*(a+i)+j) 或 a[i][j] 代表第i行第j列的內容
列指標指向的內容:
*(a+i*n+j) 或 a[i*n+j] 或 a[i][j] 代表第i行第j列的內容
二維陣列的行指標:(逐行查詢,逐列查詢)
#include
using
namespace std;
intmain()
,};int
(*p)[3
];//(*p)[i]:是定義乙個指向含有i個元素的陣列的指標,不過要注意,這裡「i」應該是乙個常量
//*p[i]:定義元素型別是指標的陣列,同樣的「i」應該是整型
p=a;
//用行位址初始化
for(
int i=
0;i<2;
++i)
return0;
}
二維陣列的列指標:(逐個查詢,相對偏移量)
#include
using
namespace std;
intmain()
,};int
*p; p=
*a;for
(int i=
0;i<2;
++i)
cout/另外一種表示方法
for(
int i=
0;i<2;
++i)
return0;
}
指標與一維 二維陣列
示例程式 includevoid main int i,j 用陣列名做指標輸出資料 第一種方式 printf s n m 第二種方式 for i 0 m i 0 i printf c m i 注意點1 printf n 通過定義指標型變數輸出 char p m 將陣列首位址賦給指標變數p 第一種方式...
一維陣列,二維陣列與指標
陣列與指標間的三條規則 陣列名是指向陣列首元素的指標。e相當於給e公升了一階。int a 4 a 0 本身是乙個值,a 0 是乙個位址,公升階大概就是這個意思 e相當於給e降了一階。降階相當於把乙個指標降為值,a 0 是乙個位址,a 0 就成為了值 以上內容來自北京大學 c程式設計高階 一維陣列與指...
二維陣列與二維指標
1.二維陣列的儲存是線性的,可以通過一維指標的方式訪問。如一下 int map 5 5 int mapd map 0 0 則 map i j mapd i 5 j 而利用二維陣列線性儲存的特性,可以將二維陣列當作一維指標方便的在函式之間傳遞 如 將乙個二維陣列賦值給乙個動態二維陣列,引數設定為一維指...