1. 程式人生 > >二維數據和一維指針數組

二維數據和一維指針數組

等價 .net zhang span 指針數組 圖片 image 分享圖片 art

1.二維數組名a的含義:

定義一個二維數組a :

  int a[3][4] = {{1,3,5,7}, {9,11,13,15}, {17,19,21,23}};

  a數組包含3個行元素,a[0],a[1],a[2]。

每個行元素a[i] 又是一個一維數組,它包含4個元素。

    a == &a[0]

    a + i == &a[i]

    a[0] == &a[0][0]

    a[i] == &a[ i ][0]

2.二維數組地址的關系:(地址由行至列以元素類型遞增)

技術分享圖片

3.二維數組與一維指針數組等價

數組名即行數組的首地址。

char
* st[] = {"SUN", "MOON", "STAR", "X"}; printf("(%s, %c)", *(st + 1) + 1, *(*(st + 2) + 2) + 2); //(OON, C)

st + i 指的是 元素st[ i ]的地址&st[ i ],而元素st[ i ],即*(st + i)是一個指向字符串的指針,即該字符串的首地址.

即st + i 指的是第 i 個字符串的地址的地址。

參數資料

二維數據和一維指針數組