1. 程式人生 > >【linux c】一維至多維陣列名的的含義及其取地址的含義_學習筆記_011

【linux c】一維至多維陣列名的的含義及其取地址的含義_學習筆記_011

1.一維陣列的陣列名

int a[3];

a:指標常量,儲存的是一維陣列首元素的地址;

&a:對一維陣列的陣列名取地址,表示一維陣列的地址;

*(&a):對一維陣列的地址取值等於陣列首元素的地址。

2.二維陣列的陣列名

int a[2][2];

*(*(a + i) j)

a + i:儲存的是二維陣列中第(i + 1)個一維陣列的地址;

*(a + i):表示二維陣列中第(i + 1)個一維陣列的首元素的地址;

*(a + i) j:表示二維陣列中第(i+ 1)個一維陣列的第(j + 1)個元素;

*(*(a + i) j) :表示二維陣列中第(i + 1)個一維陣列的第(j + 1)個元素的值。

3.三維陣列的陣列名

int a[2][2][2]

*((*(*(a + i) j) + k)

a + i:儲存的三維陣列中第(i + 1)個二維陣列的地址;

*(a + i):表示三維陣列中第(i + 1)個二維維陣列的首個一維陣列的地址;

*(a + i) j:表示三維陣列中第(i+ 1)個二維陣列的第(j + 1)個一維陣列的地址;

*(*(a + i) j) :表示三維陣列中第(i + 1)個二維陣列中第(j + 1)個一維陣列的首個元素的地址;

*(*(a + i) j) + k:表示三維陣列中第(i + 1)個二維陣列中第(j + 1)個一維陣列中第(k + 1)個元素的地址;

*((*(*(a + i) j) + k):示三維陣列中第(i + 1)個二維陣列中第(j+ 1)個一維陣列中第(k + 1)個元素的值。