C语言3×3二维数组,c语言二维数组的用法
Yyds干货库存
二维数组:首先介绍一维数组。接下来介绍如何定义和使用二维数组。
二维数组定义的一般形式如下:
类型说明符数组名[常量表达式1][常量表达式2]与一维数组定义的唯一区别是增加了常量表达式2,其中常量表达式1是第一维的长度,常量表达式2是第二维的长度。通常,在处理二维数组时,为了便于理解,将数组视为一个矩阵。常数表达式1指示矩阵中的行数,而常数表达式2指示矩阵中的列数。与一维数组一样,在定义二维数组时,常量表达式不能是变量。我们先通过一段代码来看看二维数组的定义。
# include stdio . h # define M 4 # define N 3 int main(){ int arr[M][N];for(int I=0;I I){ for(int j=0;j j ) { printf( arr[%d][%d]=%d\t ,I,j,arr[I][j]);} printf( \ n );}返回0;}运行结果:
把二维数组arr想象成一个矩阵。下图显示了数组中的每个元素在矩阵中的存储位置。
数组中每个元素在矩阵中的对应位置由二维数组的两个下标决定。我们可以把定义的二维数组int arr[4][3]看成由arr[4]和int [3]两部分组成,把arr[4]看成一个包含arr[0]、arr[1]、arr[2]和arr[3]四个元素的整数一维数组,每个元素都是int[3]。
了解了2D数组的这种特殊结构之后,接下来,我们可以通过下图了解2D数组在内存中的存储结构。
根据二维数组的内存结构图可以发现,二维数组中的所有元素都存储在一个连续的内存单元中,所占用的内存大小是元素类型乘以第一维和第二维的长度所占用的内存大小。如果按矩阵分析二维数组的存储方式,从左到右存储矩阵第一行的所有元素,然后同样存储第二行的所有元素,直到存储完所有数组元素。
接下来,看一个二维数组的例子:
进入任意一个3行3列的二维数组,求对角元素之和。
# define _ CRT _ SECURE _ NO _ WARNINGS # include stdio . h int main(){ int arr[3][3];int i,j,sum=0;printf(请输入:\ n );for(I=0;I I){ for(j=0;j j ) { scanf(%d ,arr[I][j]);} } for(I=0;I I){ for(j=0;j j){ if(I==j){ sum=arr[I][j];} } } printf(结果为:%d\n ,sum);返回0;}运行结果如下:
二维数组就说这么多,后面会继续更新。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。