数组的概念
在程序设计中,为了处理方便,把具有相同类型的若干数据项按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。组成数组的各个数据分项称为数组元素。数组属于常用的数据类型,数组中的元素有固定数目和相同类型,数组元素的数据类型就是该数组的数据类型。例如,整型数据的有序集合称为整型数组,字符型数据的有序集合称为字符数组。
数组还分为一维、二维、三维和多维数组等,常用的是一维、二维和字符数组。
一堆数组
在 C 语言中,数组必须先定义、后使用。一维数组的定义格式如下:
类型说明符 数组名[常量表达式];
类型说明符是指数组中的各个数组元素的数据类型;数组名是用户定义的数组标识符;方括号中的常量表达式表示数组元素的个数,也称为数组的长度。
定义数组时,应注意以下几点:
(1)数组的类型实际上是指数组元素的取值类型。对于同一个数组,所有元素的数据
类型都是相同的。
(2) 数组名的书写规则应符合标识符的书写规定。
(3)数组名不能与其他变量名相同。
(4)方括号中常量表达式表示数组元素的个数,如a[5]表示数组 a 有 5个元素。数组元素的下标从0开始计算,5 个元素分别为 a[0]、a[1]、a[2]、a[3]、a[4]。
(5) 方括号中的常量表达式不可以是变量,但可以是符号常数或常量表达式。
(6) 允许在同一个类型说明中,说明多个数组和多个变量。
数组元素
数组元素也是一种变量,其标志方法为数组名后跟一个下标。下标表示该数组元素在数组中的顺序号,只能为整型常量或整型表达式。
如为小数时,C 编译器将自动取整。定义数组元素的一般形式为:数组名[下标]
在程序中不能一次引用整个数组,只能逐个使用数组元素。例如,数组 a 包括 10 个数组元素,累加 10 个数组元素之和,必须使用下面的循环语句逐个累加各数组元素:
int a[10],sum,i;
sum=0;
for(i=0;i<10;i++) sum=sum+a[i];
不能用一个语句累加整个数组,下面的写法是错误的:
sum=sum+a;
数组赋值
给数组赋值的方法有赋值语句和初始化赋值两种
在程序执行过程中,可以用赋值语句对数组元素逐个赋值,例如:
for(i=0;i<10;i++)
num[i]=i;
数组初始化赋值是指在数组定义时给数组元素赋予初值,这种赋值方法是在编译阶段进行的,可以减少程序运行时间,提高程序执行效率。初始化赋值的一般形式为:
类型说明符 数组名[常量表达式]=(值,值,...,值);
其中在|中的各数据值即为相应数组元素的初值,各值之间用逗号间隔,例如:int num[10]=(0,1,2,3,4,5,6,7,8,9 );
相当于:
num[0]=0;num[1]=;·;num[9]=9;在简易密码锁程序ex4_2c中对数组 tab的说明也可以修改如下:
unsigned char code tab[]=(0xc0,0xf9,0xa4,0xb0,0xbf,0x8b,0x8c);
这里没有指定数组的元素个数,在小中说明的各数据值的个数就是数组中的元素个数因此数组 tab 的元素个数是7个。
二维数组
定义二维数组的一般形式是:
类型说明符 数组名[常量表达式][常量表达式2];其中“常量表达式1”表示第一维下标的长度,“常量表达式 2”表示第二维下标的长度,例如:
int num[3][4];说明了一个3行4列的数组,数组名为 num,该数组共包括 3x4 个数组元素,即:
num[0][0],num[0][1],num[0][2],num[0][3]num[1][0],num[1][1],num[1][2],num[1][3]num[2][0],num[2][1],num[2][2],num[2][3]
二维数组的存放方式是按行排列,放完一行后顺次放入第二行。对于上面定义的二维数组,先存放num[0]行,再存放num[1]行,最后存放num[2]行;每行中的4个元素也是依次存放的。由于数组 num 说明为 int 类型,该类型数据占2字节的内存空间,所以每个元素均占有2字节。
二维数组的初始化赋值可按行分段赋值,也可按行连续赋值。
例如,对数组 a[3][4]可按下列方式进行赋值。
(1) 按行分段赋值可写为:
int a[3][4]=((80,75,92,61),(65,71,59,63),(70,85,87,90));(2) 按行连续赋值可写为:
int a[3][41=(80,75,92,61,65,71,59,63,70,85,87,90);以上两种赋初值的结果是完全相同的。
二维数组的应用参见任务4-2中的ex4_5.c及任务4-3中的ex4_8.c。
字符数组
用来存放字符量的数组称为字符数组,每一个数组元素就是一个字符。
字符数组的使用说明与整型数组相同,例如“char h[10];”语句,说明 ch 为字符数组;包含 10 个字符元素。字符数组的初始化赋值是直接将各字符赋给数组中的各个元素。例如:
char ch[10]=('c',h',i''n',e','s',e',0);
以上定义说明了一个包含 10 个数组元素的字符数组 h,并且将 8 个字符分别赋值到ch[0]~ch[7],而 ch[8]和 ch[9]系统将自动赋予空格字符。当对全体数组元素赋初值时也可以省去长度说明,例如:
char ch[]=('c',h',i','n',e',s',e' 0');
这时 ch 数组的长度自动定义为 8。通常用字符数组来存放一个字符串,字符串总是以,\O'来作为串的结束符。因此当把一个字符串存人一个数组时,也要把结束符,\0存人数组,并以此作为字符串的结束标志。
C 语言允许用字符串的方式对数组做初始化赋值,例如:
char ch[]={'c',h',i',n','e',s',e','\0};
可写为:
char ch[]={"chinese"};文章来源:https://www.toymoban.com/news/detail-781029.html
或去掉 },写为:可名char ch[]="chinese";个字符串可以用一维数组来装入,但数组的元素数目一定要比字符多一个,即字符串结束符·\0',由C编译器自动加上。
文章来源地址https://www.toymoban.com/news/detail-781029.html
到了这里,关于认识单片机数组的概念的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!