- 3
- 0
- 约5.52千字
- 约 22页
- 2018-06-26 发布于福建
- 举报
第9章C中的大口袋”—数组
第9章 C++中的“大口袋”—数组 在前一章中,向大家介绍了C++中存储分类符及其作用域。本章将详细讲解C++中的数组,及其如何在C++程序中表示出来。本章主要涉及到的知识点如下所述。 数组的概念、声明和定义:学会声明和定义一个数组。 数组在内存中的存储方式:了解数组与内存的映射关系。 数组的初始化:学会如何创建一个可以使用的数组,及写入有效数据。 数组元素的访问:学会如何读取和更改数组中的数据。 数组的一些特性:了解数组和变量的不同之处,及其优点。 一维数组和二维数组:学会把数据有机的结合起来,应用于实际之中。 字符数组的定义和使用:明白什么是字符数组?如何定义及使用。 9.1 编了号的“大口袋” 在程序设计中,有时候要用到很多的数据,而数据总是存放在变量中的。那么就需要很多的变量。然而,变量多了就变得难以管理了。下面笔者将向大家讲解一种容易管理的变量组合――数组,有了数组就不会产生这样的问题了。 9.1.1 内存中的大口袋-数组的概念 这就好像一个街道上,两旁有很多的楼房,即使每栋楼房取的名字各不相同,但要在大楼林立的街道中找出其中一栋楼来,那也是一件非常不容易的事情。于是,最方便的方法就是给街道的每栋楼编个门牌号,这样要找到一栋楼就变得很容易了。同样的道理,把相同类型的变量编个号放在一组里,这个组就被称为数组。所以数组有如下3个特性: 数组是数据的集合,每个数据项都是有序序列的一部分。 数组中每个数据项叫做数组的元素。 是由合法的数据类型构成的线性数据序列。 9.1.2 如何创造一个“大口袋”—数组的声明和定义 同其他的变量一样,数组必须先被声明或者定义后才能被使用。一种典型的数组声明的格式如下所示: 数据类型 数组名[大小]; 其中,数据类型可以是任何一种合法的数据类型,如int、char、short、long、float、double等,也可以是后面章节将提到的自定义的数据类型。数组名是一个由有效的C++标识符构成,而方括号[ ]表明这是一个数组,方括号中的数值指定整个数组的大小,即可以存储多少个元素。现在来看一看如何在C++中声明和定义一个整形和浮点型数组。 int nArray[100]; //声明一个整形数组 float fArray[10]; //声明一个浮点型数组 9.2 搞明白数组在内存中如何存储 在继续学习之前,先要了解一下数组在计算机内部是如何存储的。理解这一点很重要。有以下两点原因: 以便在使用指针(将在以后的章节学习)来存取数组元素时概念清晰。 新程序员常犯的错误之一就是不能正确地估计数据的大小。要么截去了数组中意义的数值,要么覆盖掉程序的其他部分。 我们知道变量和数组都是放在内存里的,有时候还能够听到内存地址(Address)这个词。那么地址究竟是什么意思呢? 其实在内存里,就像是一栋楼,有很多楼层,每层楼中的房间又按顺序编了号,于是在房子中,按楼层和房间的编号就能确定内存中唯一的一间房,在这里认为所有的数据在内存中都是放在房子里。计算机就是依照这个原理找到所要访问或修改的数据的。楼层号和房间的编号就称为这个房子的地址。 9.3 “大口袋”的特性 在前一节中,详细介绍了数组在内存中的存储方式,这一节笔者将通过一些实例来说明数组的其他特性。 9.3.1 在声明时初始化数组 现在大家就来学习如何初始化数组,因为当声明一个在一个函数内的数组时,除非特别指定,否则数组将不会被初始化,因此其内容在将数值存储进去之前是不定的。如果想在声明的时候就把数组初始化,声明如下所示: 01 main() 02 { 03 int nArray[4]={18,20,30,45}; 04 …… } 9.3.2 数组元素的访问 在程序中可以读取和修改数组任一元素的数值,就像操作其他普通变量一样。格式如下所示: 数组名[元素序列号] 注意:元素序列号又被称为下标。 继续前面的例子,数组nArray 有4个元素,其中每一元素都是整型int,引用其中第3个元素的方法如下所示: nArray[2]; 9.3.3 数组可以传递给函数 回想一下前面学习的章节,当向一个函数传递一个变量时,实际上传递的只是该变量的一个备份,而不是变量本身。但对于数组就不是一个备份了。常常又有时候需要将数组作为参数传给函数。在C++ 中将一整块内存中的数值作为参数完整地传递给一个函数是不可能的,即使是一个对齐的数组也不可能,但是允许传递数组的首元素地址。其实际作用也是一样的,但传递地址更快速有效。当数组传给函数时,处理的是数组的实际的值。 注意:要定义数组为参数,只需要在声明函数的时候指明参数数组的基本数据类型,一个标识后面再跟一对空括号[]就可以了。例如以下的函数: void disp(int nArray[]); 9.4
您可能关注的文档
- 第19章 活药课件.ppt
- 第1章 立叶变换.ppt
- 第1节3抗心绞药课件.ppt
- 第1节 n维向量其线性相关性.ppt
- 第1节 向量内积和正交矩阵.ppt
- 第1讲 梯运行条件课件.ppt
- 第1章系统技术求书 中国国际招标网.doc
- 第1章 其他类中药教学课件.ppt
- 第1课 三百六十是h 动物82行.doc
- 第20050911期招标公告.doc
- (正式版)DB51∕T 1867-2014 《袋栽黑木耳生产技术规程》.docx
- (正式版)DB51∕T 2413-2023 《油橄榄密植丰产栽培技术规程》.docx
- (正式版)DB51∕T 2436-2017 《川菜东坡一品肉烹饪工艺技术规范》.docx
- (正式版)DB51∕T 2396-2017 《农村电子商务服务站(点)服务与管理规范》.docx
- (正式版)DB51∕T 2419-2017 《桢楠扦插育苗技术规程》.docx
- CN105145773B 一种无花果曲奇饼干及其制作方法 (江苏农林职业技术学院).docx
- CN105203825A 微测量电极的制作方法和热电势的测量方法及相关装置 (国家纳米科学中心).docx
- CN105137533B 一种啁啾光纤光栅及其制作方法 (南京航空航天大学).docx
- (正式版)DB51∕T 2453-2018 《巴山新居公共管理指南》.docx
- (正式版)DB51∕T 1892-2014 《川西北地区沙化土地治理技术规程》.docx
原创力文档

文档评论(0)