开发者学堂课程【C语言学习教程:二维数组_基本概念】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/387/detail/4900
二维数组_基本概念
内容介绍:
二维数组的定义
二维数组的初始化
二位数字的赋值
二维数组的访问
一、二维数组的定义
数组的数组,二维数组中的每个元素是类型相同的一维数组二维数组的定义
类型说明符数组名[常量表达式1][常量表达式2];
int a[3][4];定义了一个有3个元素的二维数组
数组中的每一个元素又是一个包含4个整形变量的一维数组(先行后列)
数组a中有12个元素,分别是a[0][0],a[0][1],a[0][2],a[0][3],
a[1][0],a[1][1],a[1][2],a[1][3],
a[2][0],a[2][1],a[2][2],a[2][3]
例子:3x4数组的表示
0 |
1 |
2 |
3 |
|
0 |
0,0 |
0,1 |
0,2 |
0,3 |
1 |
1,1 |
1,2 |
1,3 |
1,4 |
2 |
2,1 |
2,2 |
2,3 |
2,4 |
二、二维数组的初始化
1.分行给二维数组赋初值:
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
2.按数组排列顺序给各元素赋初值:
int a[3][4]={1,2,3,45,6,7,8,9,10,11,12};
二维数组在内存中的物理顺序仍然是连续的,逻辑结构看似是矩阵型,内存结构实际是连续的,所以允许进行类似于与一维数组同样的、依次放入数据的处理。
3.对部分元素赋初值:
int a[3][4]={{1},{5)},{9}};
int a[3][4]={1,2};(其他元素被默认赋值为0)
4.极端部分初始化:
int a[3][4]={};(所有元素赋值为0)
三、二位数字的赋值
1.对单个元素进行赋值:
int a[3][4]; a[0][0]=1; a[0][1]=2;
2.用循环语句进行赋值:
int a[3][4];
for (int i=0; i<3; i++) {
for (int j=0; j<4; j++) {
scanf("%d",&a[i] [j] );
}
四、二维数组的访问
单个数组元素的访问:
int a[3][4]; printf{"%d\n",a[0][1]};
二维数组访问每一个元素可以通过双层循环
遍历打印二维数组每一一个元素如下:
int arr[3][5],i,j;
for(i=0; i<3; i++){ //外层循环控制哪一个子数组
for(j=0; j<5; j++) { //内层循环控制子数组中每个元素
printf("%d ",arr[i][j]);
}
print("\n");
}
例:
int array[3][4] = {{1,2,3,4],{5,6,7,8],{9,10,11, 12}};
for (int i=Ø; i<3;i++) {
for (int j=0; j<4;j++) {
printf("array[%d] [%d] = %d",i,j,
array[i][j]);
}
printf("\n") ;
}