定义二维数组的格式:
int arr[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}} 三行四列
或写成int arr[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}
int drr[3][4]={1,2,3,4} 剩余的补零
int err[][4]={1,2,3,4,5,6,7,8,9,10,11,12} 可推出为3行
在计算机存储二维数组时一般遵循行主序,即一行从左往右填满了再填下一行。
三行四列的二维数组示意图:
计算机在存储时先将第一行按一位数组存储完后,在进行存储第二行,以此类推。
数组类型
数组类型一般很容易出错,下面我们通过举例将一位数组和二维数组放在一起来对比讨论它们的类型
int arr[4] int brr[3][4]
类型 类型
arr int *p 整型指针 brr int(*p)[4] 数组指针
arr+1 int *p 地址加1 brr+1 int(*p)[4]
arr[0] int brr[0] int*p 第一行数组的数组名
arr[0]+1 int 值加1 brr[0]+1 int*p
brr[0][0] int
brr[0][0]+1 int 值加1
数组指针与指针数组的区分
通过举例来加以区分:int (*p)[4]表示一个长度为4的整型数组的指针。叫数组指针。
int *p[4]:长度为4的保存指针的数组。为指针数组。