c 二維陣列賦值及二維指標使用

2021-10-07 21:20:13 字數 778 閱讀 3276

#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型別...