1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 数组 本章将重点讨论数组类型的语法和使用。数组是同一数据类型的许多数据元素按某种顺序排列在一起的集合。通过使用数组名和索引就可以访问数组中的任意元素,这为处理统一类型的数据集合提供了极大的便利。C语言中的数组类型可以分为一维数组、二维数组和多维数组。 第8章 数组 在本章中,将重点学习以下内容: 一维数组的使用; 具名变量的使用; 数组越界的风险; 二维数组的使用; 多维数组的使用。 8.1 一维数组 一维数组是C语言中用来存储和处理一维序列数据的数据类型。组合使用数组名和数组下标可以方便地访问数组元素。本小节将先讨论一维数组的定义、数组元素的访问和初始化,再介绍如何表示数组中各元素的地址,同时还讨论了数组越界的问题,最后通过几个范例来演示一维数组的使用。 8.1.1 定义一维数组 一维数组是用以存储一维数列中的数据的集合。数组型变量的定义由四个部分组成:数组名、数据类型名、数组操作符(即[])和数组容量。其标准的定义方式为: 数据类型名 数组名[数组容量]; 下例是几个正确定义一维数组型变量的例子: int array[4]; char goodbyte[8]; double area[7]; 8.1.2 访问一维数组 通过使用数组名、数组操作符和索引的组合可以访问数组中的任一元素,标准形式如下: 数组变量名[索引]; 索引必须为一个值为整数的表达式,但不要求是常量表达式。 索引的值应大于等于0,且小于数组容量。 数组内元素编号从0开始,直到数组容量的值减1。 8.1.2 访问一维数组 例如,定义了以下数组: char bookName[20]; 其数组内部元素的编号为0~19。为了表述上的方便和统一,本书正文中数组编号也从0到数组容量减1。那么,本书中所说的数组的第0个元素,即索引值为0的数组元素,也就是普通意义上的第一个元素;第i个元素,即索引值为i的数组元素,也就是普通意义上的第i + 1个元素。要访问第0个元素,则只需: bookName[0]; /* 普通意义上,0为第1个 */ 访问第6个元素的方式如下: bookName[6]; /* 普通意义上,这是第7个元素 */ 访问最后一个元素的方式如下: bookName[19]; 8.1.3 未初始化的一维数组 与之前讨论的数据类型一样,为了数据安全,对数组也必须初始化。如果直接使用未经初始化的数组元素,可能会发生不可预期的一些问题。范例8-2直接输出未初始化的数组元素值,以观察未初始化的数组的状况。 8.1.4 初始化数组 数组的初始化就是在定义数组变量的同时给其中的数组元素赋值,由于是给多个元素同时赋值,因此形式上与对单个变量赋值有所不同。主要有以下三种形式: 8.1.4 初始化数组 1.形式一 对数组中的所有元素赋值,把初始化值序列依次放在花括号中,并使用逗号隔开,形式如下: 数据类型 数组名[N] = {值0, 值1, 值2, …, 值(N-1)}; 花括号内的最后一个值后,也可以跟一个逗号,如下所示: 数据类型 数组名[N] = {值0, 值1, 值2, …, 值(N-1),}; 8.1.4 初始化数组 其中花括号内的值0赋值给数组的第0个元素,值1赋值给第1个元素,值2赋值给第2个元素,……,第(N-1)个元素赋值给第(N-1)个元素。例如: int month[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; 也可以在最后一个元素后面跟一个逗号,如下所示: int month[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,}; /*最后一个值后也可以跟逗号*/ 8.1.4 初始化数组 执行初始化后,花括号内值序列依次赋值给month的元素:month[0]为31,month[1]为28,month[2]为31,month[3]为30,month[4]为31,month[5]为30,month[6]为31,month[7]为31,month[8]为30,month[9]为31,month[10]为30,month[11]为31。 同时,初始化的数值序列不能多于数组个数。例如: int year[4] = {356, 355, 355, 355, 356}; 由于将5个数值赋值给只能保存4个元素的数组变量,所以编译器将报错:太多初始值。 8.1.4 初始化数组 2.形式二 也可以只给数组的部分元素赋值,编译器会自动把剩余元素内存空间初始化为0:如果类型为int型,为0;如果类型为浮点型,则为0.000000(取6位)。标准形式如下: 数据类型 数组名[N] = {值0,

文档评论(0)

dd545454 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档