《初识C语言》二维数组

 2024-01-14 04:01:20  阅读 0

只有一个下标的一维数组称为一维数组,其数组元素也称为单下标变量。 在实际问题中,很多量都是二维或多维的,因此C语言允许构造多维数组。 多维数组元素有多个下标来标识其在数组中的位置,因此也称为多下标变量。 本节只介绍二维数组。 多维数组可以类推二维数组。

1.二维数组的定义

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

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

常数表达式1表示第一维下标的长度,常数表达式2表示第二维下标的长度。 例如:

它展示了一个三行四列的数组。 数组名为a,下标变量类型为整型。 该数组中有3×4个下标变量,即:

二维数组初始化语句_二维数组初始化语法格式_c 二维数组初始化

二维数组在概念上是二维的,也就是说它的下标在两个方向上变化,并且下标变量在数组中的位置也是在一个平面上,而不是像一维数组那样只是一个向量。 然而,实际的硬件存储器是连续寻址的,这意味着存储器单元在一维上线性排列。 一维内存中存储二维数组有两种方式:一种是按行排列,即放置完一行后,依次放置第二行。 另一种是按列排列,即放置一列后,放入第二列。

在C语言中,二维数组按行排列。 即先存储a[0]行,然后存储a[1]行,最后存储a[2]行。 每行的四个元素也是按顺序存储的。 由于数组a被描述为int类型,该类型占用两个字节的内存空间,因此每个元素占用两个字节。

2.二维数组元素的引用

二维数组的元素也称为双下标变量,其表示形式为:

数组名[下标][下标]

下标应该是整数常量或整数表达式。 例如:

表示数组a的三行四列的元素。

下标变量和数组声明在形式上有些相似,但两者的含义却完全不同。 数组描述的方括号中给出的是某维的长度,即下标的最大值; 数组元素中的下标是该元素在数组中的位置标识。 前者只能是常量,后者可以是常量、变量或表达式。

【例1】一个学习小组有5人,每人有三门课程的考试成绩。 求全组每个科目的平均分以及每个科目的总体平均分。

——张望·李兆洲

数学 80 61 59 85 76

中 75 65 63 87 77

92 71 70 90 85

可以设置一个二维数组a[5][3]来存储五个人三门课程的成绩。 然后设置一个一维数组v[3]来存储每个科目的平均分,让变量为全组每个科目的总平均分。 编程如下:

二维数组初始化语句_c 二维数组初始化_二维数组初始化语法格式

该程序首先使用双循环。 在内循环中,依次读取每个学生在某门课程中的成绩,并将这些成绩累加起来。 退出内循环后,将累计分数除以5并发送给v[i]。 这就是课程。 平均分。 外循环一共循环3次,计算出三门课程每门课程的平均分,存入v数组中。 退出外循环后,将v[0]、v[1]、v[2]相加并除以3,得到各科目的总体平均分。 最后根据题意输出各个分数。

二维数组的初始化

二维数组的初始化还会在类型指定期间为每个下标变量分配一个初始值。 二维数组可以按行分段赋值,也可以按行连续赋值。

例如,对于数组 a[5][3]:

逐行分段赋值可以写为:

行连续赋值可以写成:

这两个初始值赋值的结果是完全相同的。

[例2] 求各科目的联系分和平均总分。

二维数组初始化语句_c 二维数组初始化_二维数组初始化语法格式

二维数组的初始化赋值还有如下指令:

1)只能给部分元素赋予初始值,没有赋予初始值的元素会自动取值0。例如:

它给每行的第一列元素赋值,未赋值的元素取值为0。赋值后每个元素的值为:

1 0 0

2 0 0

3 0 0

赋值后的元素值为:

0 1 0

0 0 2

3 0 0

2)如果给所有元素赋初始值,则不需要给出第一维的长度。 例如:

可以写成:

3)数组是一种构造类型的数据。 二维数组可以看作是一维数组的嵌套数组。 假设一维数组的每个元素都是另一个数组,形成一个二维数组。 当然,前提是每个元素类型必须相同。 根据这样的分析,一个二维数组也可以分解为多个一维数组。 C 语言允许这种分解。

例如,二维数组a[3][4]可以分解为三个一维数组,其数组名称为:

二维数组初始化语法格式_c 二维数组初始化_二维数组初始化语句

这三个一维数组就可以使用,无需进一步解释。 这三个一维数组有 4 个元素。 例如:一维数组a[0]的元素为a[0][0],a[0][1],a[0][2],a[0][3]。 必须强调的是,a[0]、a[1]、a[2]不能用作下标变量。 它们是数组名,而不是简单的下标变量。

需要更多学习笔记有用信息的朋友欢迎关注公众号【老九学院】(づ ̄3 ̄)づ╭❤~

标签: 数组 二维 变量

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码