二维数组定义的一般形式是:
类型说明符 数组名[常量表达式1][常量表达式2]; |
数据类型 数组名[行数][列数]; |
. 二维数组实际上其实是由若干个一维数组组成的
例如:
int a[2][3]={{1,2,3},{4,5,6}}
注意:若第一维的长度没有指定,则在定义的同时需要对其完成初始化。
初始化的几种形式:
①int arr[2][3]={{1,2,3},{4,5,6}};
②int arr[2][3]=
{
{1,2,3},
{4,5,6}
};
③或者把二者间的括号省略,即int arr[2][3]={1,2,3,4,5,6};
④又或者把行数省略,即int arr[][3]={1,2,3,4,5,6};但列数是绝对不能省略的!
也可以部分初始化,但两部分的括号必须加上。
二维数组各元素地址关系表
int a[3][4];
若0<=i<3,0<=j<4,则二维数组的元素a[i][j]的地址可以有以下五种表达式:
①&a[i][j] ②a[i]+j ③*(a+i)+j ④&a[0][0]+4*i+j ⑤a[0]+4*i+j
&a 表示二维数组地址。 a 表示首行地址。
&a[0] 表示首行地址。 a[0] 表示首行首元素地址。
a[0][0] 表示首行首元素的值。 &a[0][0] 表示首行首元素地址。
a[0] | a[0]+0 | a[0]+1 | a[0]+2 | a[0]+3 |
a[1] | a[1]+0 | a[1]+1 | a[1]+2 | a[1]+3 |
a[2] | a[2]+0 | a[2]+1 | a[2]+2 | a[2]+3 |
a[0] | *(a+0)+0 | *(a+0)+1 | *(a+0)+2 | *(a+0)+3 |
a[1] | *(a+1)+0 | *(a+1)+1 | *(a+1)+2 | *(a+1)+3 |
a[2] | *(a+2)+0 | *(a+2)+1 | *(a+2)+2 | *(a+2)+3 |
因此,想要取出二维数组中的某个元素时,可以有多种方法。