原来C语言多维数组这么好玩!带你轻松拿捏

createh51周前 (05-15)技术教程10

程序员Feri一名12年+的程序员,做过开发带过团队创过业,擅长Java、鸿蒙、嵌入式、人工智能等开发,专注于程序员成长的那点儿事,希望在成长的路上有你相伴!君志所向,一往无前!在C语言的世界里,多维数组就像是神秘的宝藏迷宫,等着我们去探索其中的奥秘。

今天,咱们就一起深入这个迷宫,揭开多维数组的神秘面纱,尤其是二维数组这个-明星成员-。

准备好了吗?让我们出发!什么是多维数组呢?简单来说,二维数组、三维数组等等都属于多维数组的范畴。

不过在这篇文章里,咱们重点聚焦在二维数组上,至于三维及以上的数组,理解了二维数组,它们也就触类旁通啦!二维数组还有个很厉害的名字,叫做矩阵(matrix)。

把它写成行(row)和列(column)的排列形式,你就能很形象地理解它的逻辑结构啦。

想象一下,它就像一个整齐排列的表格,每一行和每一列都有着清晰的对应关系。

这里的二维数组a可以看成是由三个一维数组组成的,它们的数组名分别是a[0]、a[1]、a[2]。

每个一维数组又各自有 4 个元素,比如一维数组a[0]的元素就是a[0][0]、a[0][1]、a[0][2]、a[0][3]。

这样算下来,二维数组a一共有 12 个成员(3 x 4 = 12)。

二维数组结构示意图那三维数组呢?也很简单:这里有个小技巧哦:C 语言允许声明多维数组,有多少个维度,就用多少个方括号,比如二维数组就用两个方括号。

多维数组可以使用大括号,在声明的同时,一次性对所有成员赋值。

在这个例子中,a是一个二维数组,这种赋值写法就相当于把第一维的每个成员都写成了一个数组。

二维数组初始化示意图这里还有个小代码来展示一下地址情况:多维数组也可以只给指定位置进行初始化赋值,没赋值的成员会自动设置为-零-值。

多维数组还能用单层大括号赋值。

不管数组有多少维度,在内存里都是线性存储的。

就拿a[2][2]来说,a[0][0]后面是a[0][1],再后面是a[1][0],以此类推。

在第四种的基础上,如果对全部元素赋值,那么第一维的长度可以不给出。

这里有个小练习,你来看看下面哪些赋值操作是正确的:答案是:都对!你答对了吗?不过要注意哦,在定义二维数组时,必须指定列数(即一行中包含几个元素)。

用矩阵形式(比如 3 行 4 列形式)表示二维数组,这只是逻辑上的概念,能很形象地表示出行列关系。

但在内存中,各元素是连续存放的,并不是二维的,而是线性的。

在C语言里,二维数组中元素排列的顺序是按行存放的。

也就是说,先顺序存放第一行的元素,再存放第二行的元素。

(最右边的下标变化最快,第一维的下标变化最慢)。

二维数组内存存放示意图就拿整型数组b[3][3]来说,它在内存中的存放情况是这样的:整型数组b[3][3]内存存放示意图再看看关于长度的问题:二维数组的遍历格式是:数组名[下标][下标]。

和一维数组一样,多维数组每个维度的第一个成员也是从 0 开始编号的。

输出结果如下:二维数组元素地址输出示意图好啦,关于C语言的多维数组就介绍到这里啦,希望你能好好掌握哦!如果你在学习过程中有任何疑问,或者有自己的小发现,欢迎在评论区留言分享。

觉得这篇文章有用的话,别忘了点赞和分享哦!咱们下次再见啦!

相关文章

C语言一维数组,到底是什么一回事?细细道来

一维数组定义和使用一维数组的定义格式如下:数据类型 数组名 [常量值];格式分析:(1) 数据类型,表示要在数组中,存放数据的类型。例如,要存放整数值,可以是int类型;要存放字符,可以是char类型...

C语言-闲聊一维、二维数组

①若a[i]为一维数组则有,a[0],为数组的一个元素。a[i]=*(&a[i]),为数组的一个元素。a+i=&a[i],为元素a[i]的地址。*(*(a+i))=*(*&a[...

C语言中的一维数组理解

在C语言中,数组作为一种最常见的数据集,它属于C语言类型定义的构造类型,它中间的每一个成员类型完全一致,也就是说只要一定义了一维数组的数据类型,那么,它中间的元素就必须全部是这种类型,在数组中,所有...

60.一维数组的应用 讲解VB中一维数组的应用。

任务实施2:计算一个班级45名学生的语文考试成绩的平均分。它给出的界面是单击输入,单击输入计算按钮就会弹出输入框,请输入第几位学生的语文成绩。输完语文成绩之后会弹出一个消息框显示语文成绩的平均分。这是...

大话C语言:数组

1 数组概述数组是若干个相同类型的变量在内存中有序存储的集合。数组是 C 语言中的一种数据结构,用于存储一组具有相同数据类型的数据。数组在内存中会开辟一块连续的空间数组中的每个元素可以通过一个索引(下...