理论教育 快速入门:数组的定义与初始化

快速入门:数组的定义与初始化

时间:2023-10-19 理论教育 版权反馈
【摘要】:1)方括号中常量表达式表示数组元素的个数,如chArray[5]表示数组chArray有5个元素。例如:当变量重名时,编译器的出错提示一般为4)数组名的书写规则应符合标识符的书写规定。例如,给10个元素全部赋1值,只能写为而不能写为3)如果给全部元素赋值,则在数组说明中,可以不给出数组元素的个数,但不推荐使用。

快速入门:数组的定义与初始化

1.数组的定义

在C语言,中使用数组必须先进行定义。一维数组的定义语句形式为

978-7-111-33274-9-Chapter04-107.jpg

其中:

●类型说明符是任意一种基本数据类型或构造数据类型,如int,char,float。

●数组名是用户自定义的数组标识符,如Data,Results,Fonts。

方括号中的常量表达式表示数据元素的个数,也称为数组的长度

例如:

978-7-111-33274-9-Chapter04-108.jpg

对于数组类型说明应注意以下几点。

1)方括号中常量表达式表示数组元素的个数,如chArray[5]表示数组chArray有5个元素。其下标从0开始计算,所以5个元素分别为chArray[0],chArray[1],chArray[2],chArray[3],chArray[4]。

2)数组的类型实际上是指数组元素的类型。对于同一个数组,其所有元素的数据类型都是相同的。

3)数组名不能与其他变量名相同。例如:

978-7-111-33274-9-Chapter04-109.jpg

当变量重名时,编译器的出错提示一般为

978-7-111-33274-9-Chapter04-110.jpg

4)数组名的书写规则应符合标识符的书写规定。

5)不能在方括号中用变量来表示元素的个数,但是可以是符号常数或常数表达式。例如:

978-7-111-33274-9-Chapter04-111.jpg

978-7-111-33274-9-Chapter04-112.jpg

下述说明方式是错误的。

978-7-111-33274-9-Chapter04-113.jpg

6)允许在同一个类型说明中,说明多个数组和多个变量。例如:

978-7-111-33274-9-Chapter04-114.jpg(www.daowen.com)

7)在单片机中,数组长度不能过大。因为单片机中存储空间有限,无法存储大量数据,所以当定义数组时长度过大会出现编译错误,如图4-13所示。

978-7-111-33274-9-Chapter04-115.jpg

图4-13 数组长度过大产生编译错误

其中的错误是说在BANK0存储体中无法找到能容纳0x64(即十进制的100)个字连续区域。其原因就是因为在主程序中定义“charString[100];”时,数组长度过大。需要注意的是,此类错误不会给出错误行号,给定位错误带来一定困难。一般情况下,遇到此类错误时第一个要想到的原因就是数组长度过大。

2.数组的初始化

数组初始化赋值是指在数组定义时给数组元素赋予初值。初始化赋值的一般形式为

978-7-111-33274-9-Chapter04-116.jpg

其中,在大括号中的各数据值即为各元素的初值,各值之间用逗号间隔。例如:

978-7-111-33274-9-Chapter04-117.jpg

相当于:

978-7-111-33274-9-Chapter04-118.jpg

C语言对数组的初始化赋值还有以下几点规定。

1)可以只给部分元素赋初值。当大括号中值的个数少于元素个数时,只给前面部分元素赋值。例如:

978-7-111-33274-9-Chapter04-119.jpg

表示只给a[0]~a[4]5个元素赋值,然后5个元素自动赋0值。

2)只能给元素逐个赋值,不能给数组整体赋值。例如,给10个元素全部赋1值,只能写为

978-7-111-33274-9-Chapter04-120.jpg

而不能写为

978-7-111-33274-9-Chapter04-121.jpg

3)如果给全部元素赋值,则在数组说明中,可以不给出数组元素的个数,但不推荐使用。例如:

978-7-111-33274-9-Chapter04-122.jpg

可写为

978-7-111-33274-9-Chapter04-123.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈