文档介绍:第十一讲 二维数组的定义和引用
一、二维数组的定义
定义二维数组的一般形式:
C语言程序设计课件
C
语
言
程
序
设
计
课
件
类型说明符 数组名[常量表达式1][常量表达式2]
决定了数组的类型
命名规则同简单变量和一维数组
注意:数组中数组元素的个数为:常量表达式1╳常量表达式2
行下标
列下标
1
可编辑版
C语言程序设计课件
C
语
言
程
序
设
计
课
件
如: int a[3][4];
定义了包含有12个整型数组元素的二维数组 a,在内存中
分布如下:
a[0][0]
a[0][1]
a[0][2]
a[1][0]
a[1][1]
a[1][2]
a[2][0]
a[2][1]
a[2][2]
a[0][3]
a[1][3]
a[2][3]
2
可编辑版
二、二维数组的引用
引用格式: 数组名[行下标][列下标]
注意:
1、行下标、列下标均从0开始,到定义的下标值减
一结束。
2、不能写成 数组名[行下标,列下标]
3
可编辑版
(1) 分行给二维数组赋值
(2) 将所有数据写在一个大括弧中,按数组排列顺序
进行赋值。
(3) 对部分元素赋值
最直观,最合理
C语言程序设计课件
C
语
言
程
序
设
计
课
件
三、二维数组的初始化
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int a[3][4]={{1},{5},{9}};
4
可编辑版
a[0][0]
a[0][1]
a[0][2]
a[1][0]
a[1][1]
a[1][2]
a[2][0]
a[2][1]
a[2][2]
a[0][3]
a[1][3]
a[2][3]
1
2
3
4
5
6
7
8
9
10
11
12
5
可编辑版
a[0][0]
a[0][1]
a[0][2]
a[1][0]
a[1][1]
a[1][2]
a[2][0]
a[2][1]
a[2][2]
a[0][3]
a[1][3]
a[2][3]
1
0
0
0
5
0
0
0
9
0
0
0
6
可编辑版
C语言程序设计课件
C
语
言
程
序
设
计
课
件
四、二维数组的应用举例
1、将一个矩阵进行转置
1 2 3
4 5 6
4
5
3 6
定义数组a int a[2][3];并将初始矩阵赋给a中元素
a[0][0]
a[0][1]
a[0][2]
a[1][0]
a[1][1]
a[1][2]
1
2
3
4
5
6
b[0][0]
b[1][0]
b[2][0]
b[0][1]
b[1][1]
b[2][1]
定义数组b int b[3][2];用来存放转置后的矩阵
7
可编辑版
C语言程序设计课件
C
语
言
程
序
设
计
课
件
数组a:
行下标
0
0
0
1
1
1
列下标
0
1
2
0
1
2
数组b:
行下标
0
0
0
1
1
1
列下标
0
1
2
0
1
2
当i=0时,j从0变化到2;当i=1时,j从0变化到2 ;
for (i=0;i<=1;i++)
for (j=0;j<=2;j++)
b[j][i]=a[i][j];
定义变量i,j,分别表示a的行下标和列下标,
a[i][j]==b[j][i]
8
可编辑版
C语言程序设计课件
C
语
言
程
序
设
计
课
件
编写程序:
main()
{
int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2],i,j;
printf(“array a:\n”);
for(i=0;i<=1;i++)
{
for(j=0;j<=2;j++)
{
printf(“%5d”,a[i][j]);
b[j][i]=a[i][j];
}
printf(“\n”);
}
printf(“array b:\n”);
for (i=0;i<=2;i++)
{
for (j=0;j<=1;j++)
printf(“%5d”,b[i][j]);
printf(“\n”);
}
}
9
可编辑版
C语言程序设计课