(二)任务目标
通过本任务的学习,在原有数字显示的基础上,进一步学习字符A~F的显示方法,熟练掌握在数码管上显示指定字符的方法,理解数组的相关概念,熟悉各字符对应数组的表示方法。
知识准备
C语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组用来存储一系列数据,但它往往被认为是一系列相同类型的变量。
数组的声明并不是声明一个个单独的变量,比如number0、number1、…、number99,而是声明一个数组变量,比如numbers,然后使用numbers[0]、numbers[1]、…、numbers[99]来代表一个个单独的变量。数组中的特定元素可以通过索引访问。
所有的数组都是由连续的内存位置组成的。最低的地址对应第一个元素,最高的地址对应最后一个元素。
一维数组定义格式:
例如:
它表示定义了一个整型数组,数组名为a,定义的数组称为数组a。数组名a除了表示该数组之外,还表示该数组的首地址。
此时数组a中有5个元素,每个元素都是int型变量,而且它们在内存中的地址是连续分配的。也就是说,int型变量占4字节的内存空间,那么5个int型变量就占20字节的内存空间,并且它们的地址是连续分配的。
这里的元素就是变量的意思,数组中习惯上称为元素。
在定义数组时,需要指定数组中元素的个数。方括号中的常量表达式就是用来指定元素的个数的。数组中元素的个数又称为数组的长度。
数组中既然有多个元素,那么如何区分这些元素呢?方法是给每个元素编号。数组元素的编号又叫下标。
数组中的下标是从0开始的(而不是1)。那么,如何通过下标表示每个数组元素的呢?通过“数组名[下标]”的方式。例如“int a[5];”表示定义了有5个元素的数组a,这5个元素分别为a[0]、a[1]、a[2]、a[3]、a[4]。其中a[0]、a[1]、a[2]、a[3]、a[4]分别表示这5个元素的变量名。
为什么下标是从0开始而不是从1开始呢?试想,如果从1开始,那么数组的第5个元素就是a[5],而定义数组时,使用的是int a[5],两个都是a[5],就容易产生混淆。而下标从0开始就不存在这个问题了。所以,一个数组a[n]中,最大元素的下标是n-1,a[i]表示数组a中第i + 1个元素。
另外,方括号中的常量表达式可以是“数字常量表达式”,也可以是“符号常量表达式”。不管是什么表达式,必须是常量,绝对不能是变量。通常情况下,C语言不允许对数组的长度进行动态定义,换句话说,数组的大小不依赖程序运行过程中变量的值。非通常的情况为动态内存分配,此种情况下数组的长度就可以动态定义。