- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序设计技术 C语言数据描述和C程序设计初步 结构化程序设计基础和C语言的控制结构 数组及其应用 函数与C程序结构 指针与函数 指针与数组 字符串及其应用 结构体类型和联合体类型 C语言的文件处理及其应用 位运算与枚举类型 本章概要和学习目标 数组是程序设计中使用的一种重要的数据结构。为了能够描述出若干相同类型的相关变量之间内在的联系,以便合理地使用程序的控制结构对它们进行处理,就需要把相同类型的多个变量按有序的形式组织起来,这些按序排列的相同数据类型的存储单元称为数组。 在C语言中,?组成数组的每个成员的数据类型可以是基本数据类型,指针类型或其他构造类型,因此数组可分为数值数组、字符数组、指针数组、结构数组等,本章仅讨论数值类型的数组及其简单应用。 数组及其应用 3.1? 一维数组 3.1.1 一维数组的定义和初始化 3.1.2 一维数组元素的引用方法 3.2 二维数组和多维数组 3.2.1 二维数组和多维数组的定义 3.2.2 二维数组和多维数组元素引用方法 3.3 数组的简单应用 3.3.1 数组元素值的随机生成 3.3.2 常用排序方法 3.3.3 常用查找方法 一维数组 一维数组是一组按线性排列有序且个数有限的同类型变量构成的数据集合,集合中的数据元素使用同一个名字来描述他们之间的共性,同时又通过各自不同的序号描述数据集合 中各个数据元素之间的关系。一维数组在存储时需要占用连续的内存空间,它们在存储器中的映像如图3.1所示,其每一个数据元素所占用的字节长度与它们的数据类型相关。 3.1.1 一维数组的定义和初始化 在C程序设计中必须首先对数组进行定义,然后才能进行数组的各种操作。一维数组定义的一般形式: 数据类型名 数组名[常量表达式]; 其中,方括号在此处是数组运算符,方括号中的常量表达式值用以指定该数组可以拥有数组元素个数,也称为数组的长度。数组的长度一但定义就不能在程序的运行过程中进行修改,在定义数组时应该根据应用的实际情况为数组长度留有余地。下面是一些数组定义的示例: int array_int[10];? float?b[10],c[20]; double arr[100];? 3.1.1 一维数组的定义和初始化 定义数组还要注意以下几点: (1)数组名的命名必须符合C语言关于标识符的书写规定。 (2)数组名也是变量,因此在定义数组时数组的名字不能与同一范围内已经定义的其它变量名字相同。 (3)定义数组时,不能用变量来表示数组的长度(注:在C99标准中可以用变量表示数组长度),但是可以用符号常数或常量表达式。下面是一组用于比较的定义形式: (4)允许在同一个定义语句中,定义多个数组或者混合定义同类型的数组和简单变量。 例如:?int?a,b,c,d,k1[10],k2[20]; 3.1.1 一维数组的定义和初始化 (5)可以在定义数组时用“存储类型”对数组进行说明,指定数组的存储单元分配到内存的静态存储区或是动态存储区。存储类型可以是自动的(auto)、静态的(static)或者外部的(extern),关于存储类别将在4.3节中详细介绍。例如,一个静态的单精度实型数组可以定义为: static float score[50]; C语言允许在数组定义时给数组元素赋予初值,这个过程称为数组初始化。数组初始化的一般形式: 数据类型名 ?数组名[存储单元数]={常量列表}; 其中,常量列表中两项之间用逗号分隔。初始值用常量形式表示,也可以使用常量表达式,但不允许使用含变量的表达式。例如: int? a[10]={?1,2,3,4,5,6,7,8,9,10?}; int b[3]={1,3*5,4*3-2}; 3.1.1 一维数组的定义和初始化 对数组进行初始化应当注意以下几点: (1)可以对数组部分初始化,即{?}中常量值的个数少于指定的数组元素个数。例如: int?a[10]={0,1,2,3,4};//为a[0]~a[4]元素赋值 (2)若需要将数组全部元素初始化为0值,可以用如下形式实现:int a[10]={0}; (3)不能给数组整体赋值。?例如,int?a[5]={1,1,1,1,1};表示将数组的所有元素值初始化为1,但不能将其写成int?a[10]={1}; 。 (4)可以省略数组的长度。例如:int?a[5]={1,2,3,4,5};和int?a[]={1,2,3,4,5};等效。 (5)初始化列表中值的个数不能超过指定的数组长度。例如下面的数组定义是错误的: int a[5]={1,2,3,4,5,6}; //初始值的个数超过了数组长度 3.1.2 一维数组元素的引用方法 C语言中规定,在一般情况下数组不能作为一个整体参加数据处理,而只能通过处理
文档评论(0)