- 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程序语言05A
C++程序设计实用教程 清华大学出版社 2008 内容提要 本章从改进第4章的单变量版“评委评分”程序出发,介绍一系列变量(数组、堆数组)版“评委评分”程序设计。 数组 ——— 内存中一系列连续存放的变量的集合 三要素(数据类型、首地址、元素个数) 指针 堆数组 指针在函数之间传递 C-字符串 第5章 数组与指针 数组 数组版“评委评分”程序设计 指针 动态变量和动态数组——堆变量和堆数组 地址值在函数之间传递 堆数组版“评委评分”程序设计 字符数组与C-字符串 指针数组与数组指针 *趣味程序 小结 5.1~5.3 5.1 数组 5.1.1 数组的定义 5.1.2 访问数组元素 5.1.3 多维数组 5.2 数组版“评委评分”程序设计 5.2.1 问题描述及算法分析 5.2.2 程序实现 5.3 指针 5.3.1 定义指针变量 5.3.2 指针运算 5.1.1 数组的定义 数组是具有相同数据类型顺序排列的一系列变量的集合,其中的变量皆被称为数组元素。 定义数组的语法格式 存储类型 数据类型 数组名[元素个数]={初始化数据表}; 说明 定义数组意味着为一系列变量分配内存空间; 这些变量(数组元素)所联系的内存空间是连续的; 相同的数据类型保证各个元素所占用的字节数相等; 对于一片连续的内存空间,要访问其中的任意变量,需要 该片空间的起始地址(首元素的地址) 数据类型 元素的序号 5.1.1 数组的定义 说明 存储类型(与普通变量类似) 全局数组、静态全局数组、静态局部数组、局部自动数组 数据类型(与普通变量类似) 数组名 ——— 表示并记录数组在内存中的首地址 元素个数 ——— 必须为常量 当给出了全部初始化数据时,可缺省元素个数,此时系统将根据初始化数据个数确定元素个数 数组三要素 数据类型 数组名 元素个数 (有此三要素,数组的一切便在掌控之中。缺一不可。) 5.1.2 访问数组元素 定义数组的作用 统一地、集中地定义众多变量,是大量数据的载体; 可以方便地“计算出”变量名,便于访问(读/写)它们。 数组各元素的名称 数组名[0] 下标始终从0起 数组名[1] 数组名[2] …… 数组名[元素个数-1] 下标到元素个数-1止 5.1.2 访问数组元素 C++不提供数组全体元素的统一表达方法 例如 double a[200]; // 定义了200个变量 a[0], a[1], …, a[199] 不能用 a 表示整个数组 因为 a 仅表示数组首元素a[0]在内存空间的地址 不能用 a[200] 表示整个数组 因为 a[200] 表示第201个元素,下标越界(访问该元素的结果将不可预料)。 掌控数组必须三要素(数据类型、数组名、元素个数) C++编译器不检查访问数组元素时下标是否越界 程序员须细心,以确保程序的正确性 5.1.3 多维数组 一系列相同数据类型、相同元素个数的数组的集合为二维数组。 即:二维数组是一维数组的数组。 存储类型 数据类型 数组名[元素个数1][元素个数2] = {初始化数据表}; 例如: double a[3][4];定义了一个二维数组,共有12个元素。 它由3个double型、元素个数为4的一维数组组成; 这3个一维数组名分别为 a[0], a[1], a[2] 由数组各元素在内存中连续存放,可推出这12个元素在内存中连续存放。 5.1.3 多维数组 多维数组 double a[3][4]; 数组名 a 为二维数组的首地址,是一维数组(首地址)a[0], a[1], a[2]的首地址的首地址 语法上是一个二级地址 元素表示方法 通常的表示 a[0][0], a[0][1], a[0][2], a[0][3], a[1][0], a[1][1], a[1][2], a[1][3], a[2][0], a[2][1], a[2][2], a[2][3] (12个元素) 或a[0][0], a[0][1], …, a[0][11] (12个元素) 或a[1][-4], a[1][-3], a[1][-2], a[1][-1], a[1][0], a[1][1], a[1][2], …, a[1][7] (12个元素) 5.2 数组版“评委评分”程序设计 问题的提出 第4章 单变量版“评委评分”程序无法进一步处理(如:按选手的最后得分排名次),因为原始数据几乎全部丢失。 其原因是 ——— 单变量 仅分配了一个变量处理分数,一个变量处理最后得分 希望能根据选手的最后得分排名次 至少各选手的最后得分不能覆盖存储 不妨将所有的原始分数均存放在不同的内存单元中 解决方案 定义数组 原始分数:二维数
文档评论(0)