欢迎来到天天文库
浏览记录
ID:55652164
大小:1.29 MB
页数:79页
时间:2020-05-22
《C语言程序设计 第6章数组.pptx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第6章数组C语言程序设计数组是有序并具有相同类型的数据的集合。在C语言中,数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或构造类型。所谓构造类型,即指由若干基本类型数据按一定的规则所构成的复杂数据类型。6.1一维数组1.一维数组的定义在C语言中使用数组必须先进行类型说明。数组说明的一般形式如下:类型说明符数组名[常量表达式];例如:inta[10];/*说明整型数组a,有10个元素*/数组的类型实际上是指数组元素的数据类型。对于同一个数组,其所有元素的数据类型都是相同的。数组名与变量名的命名均遵循标识符的命名规则。在同一程序中,数组
2、名不能与其他变量名相同。例如:6.1一维数组上面的程序是错误的。数组名后方括号中是整型常量表达式,表示数组元素的个数,下标是从0开始的。如“a[5]”表示数组a有5个元素,分别为a[0],a[1],a[2],a[3],a[4]。定义数组时,常量表达式中可以包含符号常数或常量,但不能包含变量。不允许对数组的大小作动态定义。例如:6.1一维数组合法的数组定义:charstr[20];/*定义一个有20个元素的字符型数组str*/floatscore[8];/*定义一个有8个元素的浮点型数组score*/inta,b,k[10];/*定义变量a,b和10个元素的整型数组k*/
3、#defineN5longda[N];/*N为符号常量,定义一个有5个元素的长整型数组da*/shortz[4*N];/*N为符号常量,定义一个有20个元素的短整型数组z*/6.1一维数组非法的数组定义:intarray(10);/*数组长度必须使用“[]”括起来*/intn;floatscore[n];/*定义数组时表达式不允许包含变量*/charstr[];/*数组长度不确定*/charstr[10.6];/*数组长度不能是浮点常量*/intn;scanf(″%d″,&n);inta[n];/*定义数组时表达式不允许包含变量*/intn=10;intscore[n]
4、;/*定义数组时表达式不允许包含变量*/6.1一维数组合法的数组定义:charstr[20];/*定义一个有20个元素的字符型数组str*/floatscore[8];/*定义一个有8个元素的浮点型数组score*/inta,b,k[10];/*定义变量a,b和10个元素的整型数组k*/#defineN5longda[N];/*N为符号常量,定义一个有5个元素的长整型数组da*/shortz[4*N];/*N为符号常量,定义一个有20个元素的短整型数组z*/非法的数组定义:intarray(10);/*数组长度必须使用“[]”括起来*/intn;floatscore[n
5、];/*定义数组时表达式不允许包含变量*/charstr[];/*数组长度不确定*/charstr[106];/*数组长度不能是浮点常量*/intn;scanf(″%d″,&n);inta[n];/*定义数组时表达式不允许包含变量*/intn=10;intscore[n];/*定义数组时表达式不允许包含变量*/6.1一维数组2.一维数组的存储结构数组定义后,系统在内存中分配一片连续的存储单元存放数组元素的值,按数组元素下标从小到大连续存放。其所占内存单元的大小与数组元素的类型和数组长度有关。计算数组所占内存单元字节数的公式:数组占内存单元的字节数=数组大小×sizeo
6、f(数组元素类型)如定义数组a为“inta[20];”,则数组a所占内存单元的字节数为20×sizeof(int)=20×4=80(B)。数组每个元素字节数相同,因此,根据数组元素序号可以求得数组各元素在内存中的地址,计算数组某个元素在内存中的地址公式:6.1一维数组数组元素地址=数组首地址+元素下标*sizeof(数组类型)如定义数组a为“inta[5];”,设数组a的首地址为1000,则数组元素a[3]的地址为1000+3*sizeof(int)=1012。数组a存储结构如图6-1-1所示。6.1一维数组3.一维数组的初始化数组初始化赋值是指在数组说明时给数组元素赋
7、初值。数组初始化是在编译阶段进行的,可减少运行时间,提高效率。初始化赋值的一般形式如下:类型说明符数组名[常量表达式]={值,值,…,值};在“{}”中的各数据值即为各元素的初值,各值之间用逗号间隔。例如“inta[10]={0,1,2,3,4,5,6,7,8,9};”相当于a[0]=0;a[1]=1;…;a[9]=9。6.1一维数组注意:①可以只给部分元素赋初值。当“{}”中值的个数少于元素个数时,只给前面部分元素赋值。如“inta[10]={0,1,2,3,4};”表示只给a[0]~a[4]这5个元素赋值,而后5个元素自动赋0值。②只
此文档下载收益归作者所有