多维数组
1.格式:类型说明符 数组名[第1维长度] [第2维长度]…[第n维长度];
以二维数组为例:int arr2[3] [4];表示3×4的二维数组1
逻辑形式如下
arr2[0][0] | arr2[0][1] | arr2[0][2] | arr2[0][3] |
---|---|---|---|
arr2[1][0] | arr2[1][1] | arr2[1][2] | arr2[1][3] |
arr2[2][0] | arr2[2][1] | arr2[2][2] | arr2[2][3] |
2.存放
数组在内存中是按“行优先”的顺序存放的,先是第0行,再是第1行,最后是第2行。
数组名arr2是该数组的首地址。&arr2[1][0]表示arr2[1][0]的地址。因此arr2与&arr2[0][0]相同。
注:arr2+1的地址不是&arr2[0][1]
多维数组的初始化
1.格式:类型说明符 数组名 [第1维长度] [第2维长度]…[第n维长度]={初值列表};
2.将初值写在一个大括号内
(1)对全体成员赋值可省略行下标,不能省略列下标;
(2)int arr2[3][4]={1,2,3};结果为arr2[0][0]=1,arr2[0][1]=2;arr2[0][2]=3。为赋值的会自动赋予0。
3.把初值按行分组
(1)对全体赋值 int arr2[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
(2)对部分赋值int arr2[3][4]={{1,2},{5,6},{9,10,11,12}};
结果为arr2[0][0]=1,arr2[0][1]=2,arr2[1][0]=5,arr2[1][1]=6,arr2[2][0]=9,arr2[2][1]=10,arr2[2][2]=11 ,arr2[2][3]=12,其余为0.