一维数组与二维数组的区别:
int arr[10]
arr int* 指向一维数组首元素的地址
arr[0] int 第一个格子的值
arr+1 int* 指向一维数组第二个元素的地址,但是不会覆盖指向首元素的指针
arr[0]+1 int 第一个格子的值加1
int brr[3][4]
brr int(*p)[4] 指向二维数组第一行的数组指针
brr[0] int* brr[0]=arr 指第一行的地址
brr+1 int(*p)[4] 指向二维数组第二行的数组指针,但是不会覆盖第一行的指针
brr[0]+1 int* brr[0]=arr 指第一行的第二个元素
brr[0][0] int 第一行第一列的值
brr[0][0]+1 int 第一行第一列的值+1
int(*p)[4] 数组指针:指向数组的指针
int *P[4] 指针数组:保存指针的数组