目录
一、二维数组
1.定义二维数组
表示方法:
类型说明符 数组名[常量表达式][常量表达式]
- float a[3][4]; //定义a为3x4(3行4列)的数组,数组第一维有3个元素,第二维有4个元素
- float a[3,4]; //在一对方括号内不能写两个下标
- 二维数组可被看作一种特殊的一维数组:它的元素又是一个一维数组
2.二维数组的存储
C语言中,二维数组中元素排列的顺序是按行存放的。
float a[3][4]; //float占4个字节
3.引用二维数组元素
数组名[下标][下标]
- “下标”可以是整型常量或整型表达式
- 数组元素可以出现在表达式中,也可以被赋值,如:b[1][2]=a[2][3]/2;
- 在引用数组元素时,下标值应在已定义的数组大小的范围内
4.二维数组的初始化
可以用“初始化列表”对二维数组初始化
(1)分行给二维数组赋初值。(最清楚直观)
int a[3][4]={{1,2,3,4},{5,6,7,8},{4,3,7,8}};
(2)可以将所有数据写在一个花括号内,按数组元素在内存中的排列顺序对各元素赋初值
int a[3][4]={1,2,3,4,4,5,6,7,8,6,12,,14};
(3)可以对部分元素赋初值
int a[3][4]={{1},{},{9}};
注:没有赋值的数组元素,系统自动填补:数组类型为int,数组元素为0;数组类型为float,数组元素为0.0;数组类型为char,数组元素为"\0"
(4)如果对全部元素都赋初值(即提供全部初始数据),则定义数组时对第1维的长度可以不指定,但第2维的长度不能省略;
在定义时也可以只对部分元素赋初值而省略第1维的长度,但应分行赋初值
int a[ ][4]={{0,0,3},{ },{0,10}};
二、二维数组程序举例
【例1】:讲义二维数组行和列的元素互换,存到另一个二维数组中
代码示例(如下):
#include<stdio.h>
int main(){
int a[2][3]={{1,2,3},{4,5,6}},b[3][2],i,j;
//输出a数组
printf("数组a为:\n");
for(i=0;i<2;i++){
for(j=0;j<3;j++){
printf("%d ",a[i][j]);
}
printf("\n");
}
//行和列的元素互换
for(i=0;i<2;i++){
for(j=0;j<3;j++){
b[j][i]=a[i][j];
}
}
//输出b数组
printf("数组b为:\n");
for(i=0;i<3;i++){
for(j=0;j<2;j++){
printf("%d ",b[i][j]);
}
printf("\n");
}
}
三、多维数组
1.定义多维数组
- float a[2][3][4]; //定义三维数组a,它有2页,3行,4列
2.排列顺序
- float a[2][3][4];在内存中的排列顺序