二维数组
二维数组本质上是以数组作为数组元素的数组,即“数组的数组”。
二维数组元素表示方法
a // 数组首行的地址
a[0] //元素a[0][0]的地址。
二维数组可以看成是一维数组的数组,(a[0] 、a[1] 、a[2] ) 。
a[0] 可以认为是数组名,数组名代表数组首元素的地址, a[0] 代表 a[0][0]的地址
*(a+0) //元素a[0][0]的地址
因为a是二维数组名,即是一维数组(a[0] 、a[1] 、a[2] )这三个元素的的首地址。
a+0就是 a[0]的地址。
*是取指针的值。
那么*(a+0)就是取 a[0]的值。 a[0] 是一个数组名,他代表数组首元素a[0][0]的地址。
a+1 // 数组第二行的地址
a[1]+2 // 元素a[1][2]的地址 a[1] 是数组名,数组名是指向数组首元素的地址, a[1]+2 数组名+2 代表数组的第三个元素的地址。
*(a+1)+2 // 元素 a[1][2]的地址 a+1 就是 a[1] 的地址 ,*(a+1) 就是 a[1][0]的地址, *(a+1)+2 就是 a[1][2]的地址。
*(a[1]+2) //元素 a [1][2] 的值 a[1] 是数组名。 a[1]+2 是 a[1][2]的地址,*(a[1]+2) 就是 元素 a[1][2]的值了。
*(*(a+1)+2) //元素 a[1][2]的值 a+1 代表 a[1]的地址,*(a+1) 代表 a[1][0] 的地址,*(a+1)+2 代表 a[1][2] 的地址。