#include
void main()
, , };
int (*tmp)[2] = test;
printf(「value = %d\n」, *(tmp+0));
printf(「value = %d\n」, **(tmp+0));
printf(「value = %d\n」, (tmp+1));
printf(「value = %d\n」, **(tmp+1));
printf(「value = %d\n」, ((tmp+0)+1));
printf(「value = %d\n」, ((int)tmp+02+1));
}gcc test.c -o test
./test
value = 730373856
value = 1
value = 730373864
value = 2
value = 1
value = 1
tmp是二位陣列,同時也可以作為二位指標使用。
tmp代表的是陣列的首位址
**tmp代表陣列首位址儲存的值
(tmp+1)代表第二行首位址
**(tmp+1)代表第二行首位址儲存的值,也就是上例中2
(tmp)+1是第一行第二個元素的位址值 == (int)tmp+02+1 首位址加上第一行第二個元素的偏移
同理:(tmp+m)+1是第m行第二個元素的位址值 == (int*)tmp+m*2+1 首位址加上第m行第二個元素的偏移
分享心得,僅此而已
二維陣列與二維指標
1.二維陣列的儲存是線性的,可以通過一維指標的方式訪問。如一下 int map 5 5 int mapd map 0 0 則 map i j mapd i 5 j 而利用二維陣列線性儲存的特性,可以將二維陣列當作一維指標方便的在函式之間傳遞 如 將乙個二維陣列賦值給乙個動態二維陣列,引數設定為一維指...
二維指標和二維陣列
二維指標和二維陣列有三種形式 1,type ptr 2,type ptr或者type prt 3,type prt 三種形式意思相近,也有區別。首先三種形式都能表示二維的資料結構。1,type ptr 表示乙個指向指標的指標 但是在一開始宣告的時候 type ptr ptr到底指向幾個指標是不知道的...
二維陣列與二維指標
一.指標與二維陣列 以martix 3 4 為例 1.二維陣列的本質 int martix 3 4 int martix 3 4 int 4 martix 3 令int 4 為type,type martix 3 為含有三個元素的陣列,每乙個元素型別為int 4 int 4 是乙個擁有4個int型別...