第6讲 的数组.doc

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6讲 的数组

第6讲 数组 教学过程设计 新课引入 在许多应用中都需要处理若干有着共同的性质并且相关的数据项。例如:在某天气预报处理系统中可能要处理一个月中各天的天气情况,并把一个月中各天的天气情况记录下来,这逐天的天气情况记录就具有相同的性质,并具有相互联系。在这种情况下,可以把这些具有相同性质并且相关的数据项放在数组中。 讲授新课 数组的基本概念 数组:数组是有序数据的集合。数组中的每一个元素都属于同一个数据类型。 说明:( 数组的这个定义与机内具体实现无关。 ( 在同一数组中的各个数组元素必须具有相同的数据类型、相同的存储类别。从而,在一个数组中不允许一部分元素为变量,另一部分元素为常量;不允许一部分元素的类型为int,另一部分元素的类型为long int;不允许一部分元素为静态变量,另一部分元素为动态变量,等等。 ( 数组中的各个数组元素之间是“有序”的。数组元素的下标和数组的维数唯一确定了该元素在数组中的位置。数组元素的下标:是数组元素在数组中的位置的索引(或叫指示)。数组的维数:数组元素的下标的个数。根据数组的维数可以将数组分为一维、二维、多维数组。 ( 数组类型是由其元素的类型、维数、各维的大小确定的,有一种特殊的数组类型,其大小在说明时可以不确定,这即是不完整数组类型。 数组元素:数组元素是数组的组成成分。 说明:( ( 一个数组中各个数组元素的类型是确定的、唯一的,各个元素的类型是相同的。( 除函数类型之外的所有类型都可作为数组元素的类型。如果要使函数类型成为数组元素的类型,可以使用变通方法:使指向函数的指针类型成为数组元素的类型。 ( 数组中各个元素的相对位置是固定的,可通过数组名字与各维下标来唯一确定各个数组元素。 ( 从某种意义上讲,数组元素也是一个相对的概念,它可以是一个具体的数据项,也可以是一个数组。例如:设有如下的说明: typedef int A1[5]; A1 a3[15][10]; 则数组元素a3[i1][i2]的类型是A1,即具有5个元素的一维数组。 数组存储分配方法:C语言明确规定数组中各个元素的存储分配次序。在进行存储分配时,各个元素依它们在数组中的位置存储在一片相连的内存区域中,即一个数组不得分散存储到内存中不同的位置。 下面先来看看一维数组的存储分配方法。数组中各个元素顺序相邻地存储在一片相连的内存区域中:下标为0的数组元素存储在最前面,其后是下标为1的元素,以此类推,下标为i的元素存储在下标为i-1的元素的后面、下标为i+1的元素的前面。例如:设有说明: double a1[10]={0.4,2.81,4.54,6.95,8.125,1.04,3.23,5.85,7.63,9.84};假定sizeof(double)=8,即double类型的值占用8个字节的存储单元,那么整个数组a1所占用的存储单元数为sizeof(a1)= sizeof(double)*10=80。再假定这个数组从地址100000h开始存储,那么数组a1的各个元素在内存的分配情况及各个元素的值如下图所示: 由于二维数组可以看作是一维数组的一维数组,对于一个经由如下说明: double a2[4][3]={{0.0,0.1,0.2},{1.0,1.1,1.2},{2.0,2.1,2.2},{3.0,3.1,3.2}};说明的二维数组a2,a2[0]的三个元素应存储在最前面(在这三个元素中,应以a2[0][0]、a2[0][1]、a2[0][2]的顺序存放。)。一维数组a2[i]的所有元素应存储在a2[i-1]的所有元素的后面、a2[i+1]的所有元素的前面,并且a2[i-1][2]的后面应紧跟着存储a2[i][0],a2[i][2]的后面应紧跟着存储a2[i+1][0]。如下图所示: 一般而言,对于一个通过如下说明: element_type an[N1][N2]……[Nn]; 定义的n维数组,我们用递归方法来解决这个问题:在分配n维数组an时,先分配n-1维数组an[0],再依次分配an[1]、an[2]、……、an[N1-1];在分配n-1维数组an[i1]时,先分配n-2维数组an[i1][0],再依次分配an[i1][1]、an[i1][2]、……、an[i1][N2-1];在分配n-k维数组(an的子数组)an[i1][i2]……[ik]时,先分配n-k-1维数组an[i1][i2]……[ik][0],再依次分配an[i1][i2]……[ik][1]、an[i1][i2]……[ik][2]、……、an[i1][

文档评论(0)

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

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

1亿VIP精品文档

相关文档