【C语言初阶】二维数组
二、二维数组
1 二维数组的创建方式
//二位数组的声明
type_t arr_name[const_n][const_n];
//type_t 表示数组中存放的元素类型
//const_n 一个整型常量表达式
//[行数][列数]
1.1 二维数组的创建
代码示例:
#include<stdio.h>
int main()
{
//二维数组的创建
int arr[3][4];
char arr[3][5];
double arr[2][4];
return 0;
}
解释说明:
1 二维数组中的每一个元素相当于是一个一维数组。
2 二维数组用下标行列来控制访问二维数组。
3 二维数组的列数表明每一行有多少个元素,也表明每列数个基础元素构成一个一维数组;行数表明有多少个这样的一维数组充当二维数组元素。
2 二维数组的初始化
代码示例:
#include<stdio.h>
int main()
{
//二维数组的初始化
int arr1[2][2] = { 1,2,3,4 };//写法一
int arr2[2][2] = { {1,2,},{3,4} };//写法二
int arr3[][2] = { {1,2,},{3,4} };//二维数组如果进行了初始化,则可以省略行数
return 0;
}
解释说明:
1 二维数组如果进行了初始化,则可以省略行数,但是不能省略列数。
2 推荐上述代码中的写法二,一个大括号表示一个二维数组元素,即一个一维数组。
3 二维数组的使用
二维数组也是通过下标(下标行列)进行访问的。
代码示例:
#include<stdio.h>
int main()
{
//二维数组的使用
int arr[3][4] = { 0 };
//给二维数组元素赋值
int i = 0;
for (i = 0; i < 3; i++)
{
int j = 0;
for (j = 0; j < 4; j++)
{
arr[i][j] = i * 3 + j;
}
}
//打印二维数组
for (i = 0; i < 3; i++)
{
int j = 0;
for (j = 0; j < 4; j++)
{
printf("%4d", arr[i][j]);
}
printf("\n");//每打印一行就换行
}
return 0;
}
解释说明:
1 printf("%4d", arr[i][j]);
其中 %4d
中的4表示至少要显示出的字符位数(最小字段宽度),如果不设定或者实际数值位超过它的时候,会根据实际数值显示出必要的位数。
4 二维数组在内存中的存储
二维数组本质上是一维数组的数组,其数组元素在内存中也是连续存储的。
代码示例:
#include<stdio.h>
int main()
{
//二维数组在内存中的存储
int arr[3][4] = { 0 };
int i = 0;
for (i = 0; i < 3; i++)
{
int j = 0;
for (j = 0; j < 4; j++)
{
printf("&arr[%d][%d] = %p\n", i, j, &arr[i][j]);
}
}
return 0;
}
解释说明:
1 二维数组元素在内存中也是连续存储的。
总结:
本节介绍了二维数组的创建、初始化和使用,以及二维数组在内存中的存储。
感谢您的阅读!如有任何错误,欢迎您的批评指正!