- 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
- 农药项目申请报告 .pdf
- 减轻义务教育阶段学生作业负担和校外培训负担理论、评论和经验汇编(53.pdf
- 初中道德与法治人教部编版八年级下册第二单元 理解权利义务本单元综合.pdf
- 函数的概念(第2课时)(教学设计)高一数学系列(人教A版2019) .pdf
- 分布式云数据中心架构及管理关键技术 .pdf
- 军训第2天心得体会1000字5篇 .pdf
- 初中数学七年级数学下册第一单元《整式的乘除》检测(有答案解析.pdf
- 初中生物第二单元《生物体的结构层次》复习知识点(1) .pdf
- 初中历史《中国近代史——侵略与反抗》单元教学设计以及思维导图.pdf
- 初三化学1—6章期末总复习讲解及训练习题 .pdf
最近下载
- 人教PEP版六年级上册Unit 5 What does he do 单元整体教学设计.pdf
- 2021年新生儿感染:抗菌药物预防性与治疗性使用指南解读(全文).pdf
- 《数字图像处理教程》试题库.pdf VIP
- 学校意识形态工作计划.pdf
- 战略模拟软件CESIM全攻略(课堂PPT).ppt
- 中国碳交易政策对可持续经济福利的影响.pptx VIP
- 反三违(典型“三违”)行为清单.docx
- (高清版)B-T 3836.1-2021 爆炸性环境 第1部分:设备 通用要求.pdf VIP
- 人教版高一化学必修一知识点梳理.docx
- 人教pep版英语三年级上册阅读理解专项复习试卷测试题(含答案).doc
文档评论(0)