【连载】(初识一维数组)——乐创DIY C语言讲义——5.1节

5.1初识一维数组
前面章节中,我们一起学习了一些简单的数据类型,它们包括浮点类型和整数类型两大类。通过使用关键词可以分别定义不同含义的单个变量。比如,小明这次考试的数学成绩是30分,那么我们可以定义一个变量“int MathScore = 30;”来存储小明这次的数学成绩/这个操作方式其实是数据类型的最简单表现方式,即定义单个的变量来存储某个数值,或者参与某次运算。
基于上面所述的内容,现在有一个棘手的问题,加入小明班级里面一共有40个同学,我要将小明班上的40个同学的成绩全部存储下来,那么我该如何定义这些变量?当然,这个问题最无脑的解决方法就是分别定义40个变量“int XiaomingMathScore, XiaozhangMathScore……”。当然这也不失为一个可以解决问题的方法,但是当你把这些变量全部一个个刚刚定义好,我想你就已经忘记究竟谁是小明,谁是小张了。
C语言为了存储这种多个变量的数据,特别规定了一种数据类型,它就是“数组”。
数组,归根到底其实就是相应数据类型的变量的集合。它的定义方式为:
数据类型数组名[数组长度];
比如,我要定义一个数组,用来存储小明班上所有同学的成绩,那么可以使用语句“int Score[40];”来定义这个数组。
数组定义完成之后,数组内部的每一个合法的存储空间都可以被使用,这种数组内部的每一个存储空间,我们称之为“元素”。数组中每一个元素的数据类型,就是这个数组被定义时的数据类型,比如,“int Score[40];”中每一个Score的数据类型都是int型。
数组定义好之后,我们可以操作其内部的每一个元素,这种数组元素操作的方式叫做“引用”。有两种方式可以引用数组中的元素,一种叫“下标引用”,另一种叫做“指针引用”。本小节先介绍“下标引用“,等到后面学完指针,再来探讨“指针引用“。
所谓“下标引用“,即直接利用数组元素的下标进行元素引用。比如我们定义了一个数组变量”int a[8];“。当这个变量定义好之后,数组的首地址,即首个元素的地址,是由编译器自动分配的,其余元素的存储地址,按照顺序依次排列下去。数组的首地址是从0开始排列的,因此第1个元素的下标为0,第2个元素的下标为1,以此类推,到第n个元素时,其下标为n-1。其内存编排如图5-1-1所示。
图5-1-1 内存地址编排
图5-1-1中,a[0]即表示这个数组被定义时,编译器分给它的首地址。那此后的每一个元素的地址,都是在这个首地址上进行偏移,偏移量即为其数据类型所占用的内存字节数。当我们使用下标引用数组中的元素时,直接使用数组名[元素下标]的方式即可实现。如数组a[8]中,引用第0个元素为a[0],引用第1个元素为a[1],引用第2个元素为a[2],以此类推,引用第7个元素为a[7]。而如果引用a[8]时,则为非法引用。这是因为,当我们定义一个数组时,”int a[8];“,此时这个中括号里面的8代表的是整个数组一共有多少个元素,而我们在引用元素的时候,”a[2]“中括号里面的数字,代表的是引用第几个元素。而由于数组的元素是从0开始排序的,假设此数组被定义成了拥有8个元素的数组,那么其序号就为0,1,2,3,4,5,6,7这8个数字。
(0)

相关推荐