- 1、本文档共49页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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][
您可能关注的文档
- 第2章 药物代的谢动力学.ppt
- 第2章Android开发环境-第1讲 安装Androi的d Studio开发环境.ppt
- 第2章M的ATLAB矩阵及其运算.pptx
- 第2章2.1 的计算机的组成与分类.ppt
- 第2章QuartusI的I开发环境的使用.ppt
- 第2章_数据的存储与的运算.ppt
- 第2章_计算机系统体系结构与_W的indows编程机制.ppt
- 第2章_从结构到类的的演变.ppt
- 第2章基本数据类型、的 运算符和表达式.ppt
- 第2章Ph的otoshop CS5基本操作.ppt
- 第18讲 第17课 西晋的短暂统一和北方各族的内迁.docx
- 第15讲 第14课 沟通中外文明的“丝绸之路”.docx
- 第13课时 中东 欧洲西部.doc
- 第17讲 第16 课三国鼎立.docx
- 第17讲 第16课 三国鼎立 带解析.docx
- 2024_2025年新教材高中历史课时检测9近代西方的法律与教化含解析新人教版选择性必修1.doc
- 2024_2025学年高二数学下学期期末备考试卷文含解析.docx
- 山西版2024高考政治一轮复习第二单元生产劳动与经营第5课时企业与劳动者教案.docx
- 第16讲 第15课 两汉的科技和文化 带解析.docx
- 第13课 宋元时期的科技与中外交通.docx
文档评论(0)