通过前面的学习,已知:
int arr[3]={1,3,5};
arr[0] 可以用 *(arr+0) 表示
arr[1] 可以用 *(arr+1) 表示
arr[2] 可以用 *(arr+2) 表示
现有二维数组如下:
int arr[3][4]=
{
{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
};
则:
arr[0] ~~~ *(arr+0)
arr[1] ~~~ *(arr+1)
arr[2] ~~~ *(arr+2)
此处arr[0]
即*(arr+0)
是二维数组arr
的第一个元素的值,该值是内层数组{1,2,3,4}
的起始地址.
将arr[0]
赋值给 temp
数组
int temp0[4] = arr[0];
int temp1[4] = arr[1];
int temp2[4] = arr[2];
获取最终的值:
arr[0][0]
~~~~ 将arr[0]
换为上边的temp0
数组
arr[0][0] ~~~~ temp0[0] ~~~~ *(temp+0) ~~~~ *(*(arr+0)+0)
arr[0][1] ~~~~ temp0[1] ~~~~ *(temp+1) ~~~~ *(*(arr+0)+1)
arr[0][2] ~~~~ temp0[2] ~~~~ *(temp+2) ~~~~ *(*(arr+0)+2)
arr[0][3] ~~~~ temp0[3] ~~~~ *(temp+3) ~~~~ *(*(arr+0)+3)
arr[1][0]
~~~~ 将arr[1]换为上边的temp1
数组
arr[1][0] ~~~~ temp0[0] ~~~~ *(tmep+0) ~~~~ *(*(arr+1)+0)
arr[1][1] ~~~~ temp0[1] ~~~~ *(temp+1) ~~~~ *(*(arr+1)+1)
arr[1][2] ~~~~ temp0[2] ~~~~ *(temp+2) ~~~~ *(*(arr+1)+2)
arr[1][3] ~~~~ temp0[3] ~~~~ *(temp+3) ~~~~ *(*(arr+1)+3)
arr[2][0]
~~~~ 将arr[2]换为上边的temp2
数组
arr[2][0] ~~~~ temp0[0] ~~~~ *(tmep+0) ~~~~ *(*(arr+2)+0)
arr[2][1] ~~~~ temp0[1] ~~~~ *(temp+1) ~~~~ *(*(arr+2)+1)
arr[2][2] ~~~~ temp0[2] ~~~~ *(temp+2) ~~~~ *(*(arr+2)+2)
arr[2][3] ~~~~ temp0[3] ~~~~ *(temp+3) ~~~~ *(*(arr+2)+3)