C语言——二维数组

简介: 二维数组

二维数组

前面介绍了一维数组,接下来介绍如何定义和使用二维数组。

二维数组定义的一般形式如下:

类型说明符 数组名[常量表达式1][常量表达式2]

与一维数组的定义唯一的不同是多了一个常量表达式2,其中,常量表达式1为第一维的长度,常量表达式2为第二维的长度。通常在处理二维数组的时候,为了便于理解,都将数组视为一个矩阵,常量表达式1表示矩阵的行数,而常量表达式2表示矩阵的列数。与一维数组一样,在定义二维数组时,常量表达式同样不能为变量。下面先通过一段代码来看二维数组的定义。

#include<stdio.h>

#define M 4

#define N 3

intmain() {

 intarr[M][N];

 for (inti=0; i<M; i++)

 {

   for (intj=0; j<N; j++)

   {

     printf("&arr[%d][%d]=%d\t", i, j, &arr[i][j]);

   }

   printf("\n");

 }

 return0;

}

运行结果:将二维数组arr视为一个矩阵,下图显示了数组中每个元素在矩阵中的存放位置。数组中各个元素在矩阵中对应的位置由二维数组的两个下标决定。我们可以将定义的二维数组int arr4视为由arr[4]和int [3] 两部分构成,将arr[4]视为一个整型一维数组,其中含有4个元素arr[0]、arr[1]、arr[2]、arr[3],每个元素都是int[3]类型的,也就是说,每个元素又是一个一维数组,每个一维数组含有3个元素,如arr[0]含有arr0、arr0、arr0三个元素。

知道了二维数组的这种特殊结构之后,接下来通过下图来了解二维数组在内存中的存储结构。通过上述二维数组在内存中的存储结构图可以发现,二维数组中的所有元素都存储在一片连续的内存单元中,所占用的内存大小为元素类型所占用的内存大小乘以第一维及第二维的长度。如果以矩阵的方式来分析二维数组的存储方式,那么先从矩阵第一行从左往右依次存储完所有元素,然后按照同样的方法存储第二行的所有元素,直到存储完所有数组元素为止。

接下来再看一个二维数组的示例:

任意输入一个3行3列的二维数组,求对角元素之和

#define _CRT_SECURE_NO_WARNINGS

#include<stdio.h>

intmain() {

 intarr[3][3];

 inti, j, sum=0;

 printf("please input:\n");

 for (i=0; i<3; i++)

 {

   for (j=0; j<3; j++)

   {

     scanf("%d", &arr[i][j]);

   }

 }

 for (i=0; i<3; i++)

 {

   for ( j=0; j<3; j++)

   {

     if (i==j)

     {

       sum+=arr[i][j];

     }

   }

 }

 printf("the result is: %d\n", sum);

 return0;

}

运行结果如下:关于二维数组就介绍到这,后面继续更新。。。

目录
相关文章
|
5月前
|
C语言
C语言期末习题之求二维数组中的最大值
C语言期末习题之求二维数组中的最大值
43 0
|
5月前
|
C语言
【C语言】利用数组处理批量数据(一维数组和二维数组)
【C语言】利用数组处理批量数据(一维数组和二维数组)
|
5月前
|
存储 数据处理 C语言
C语言二维数组
C语言二维数组
41 0
|
5月前
|
C语言
C语言---二维数组&&指针
C语言---二维数组&&指针
25 0
|
5月前
|
C语言
C语言-----用二维数组解决菱形的打印问题
C语言-----用二维数组解决菱形的打印问题
43 0
|
5月前
|
存储 C语言
遍历二维数组C语言,小白必看的绝绝子技巧!
遍历二维数组C语言,小白必看的绝绝子技巧!
C4.
|
5月前
|
存储 C语言
C语言怎样定义和引用二维数组
C语言怎样定义和引用二维数组
C4.
49 0
|
26天前
|
存储 人工智能 C语言
C语言程序设计核心详解 第八章 指针超详细讲解_指针变量_二维数组指针_指向字符串指针
本文详细讲解了C语言中的指针,包括指针变量的定义与引用、指向数组及字符串的指针变量等。首先介绍了指针变量的基本概念和定义格式,随后通过多个示例展示了如何使用指针变量来操作普通变量、数组和字符串。文章还深入探讨了指向函数的指针变量以及指针数组的概念,并解释了空指针的意义和使用场景。通过丰富的代码示例和图形化展示,帮助读者更好地理解和掌握C语言中的指针知识。
|
26天前
|
存储 人工智能 C语言
C语言程序设计核心详解 第六章 数组_一维数组_二维数组_字符数组详解
本章介绍了C语言中的数组概念及应用。数组是一种存储同一类型数据的线性结构,通过下标访问元素。一维数组定义需指定长度,如`int a[10]`,并遵循命名规则。数组元素初始化可使用 `{}`,多余初值补0,少则随机。二维数组扩展了维度,定义形式为`int a[3][4]`,按行优先顺序存储。字符数组用于存储字符串,初始化时需添加结束符`\0`。此外,介绍了字符串处理函数,如`strcat()`、`strcpy()`、`strcmp()` 和 `strlen()`,用于拼接、复制、比较和计算字符串长度。
|
5月前
|
C语言
C语言期末习题之二维数组转置
C语言期末习题之二维数组转置
40 0