资源描述:
《面向对象的程序设计语言——C++ 第二版 教学课件 作者 陈志泊 第05章.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第5章构造数据类型本章主要内容(1)理解和掌握数组的定义和使用。(2)理解和掌握指针的定义和使用。(3)熟练掌握C++中结构体、共用体和枚举的定义和使用。2北京林业大学软件教研室5.1数组数组是由若干相同数据类型的数据组成的有序集合。数组中每一个数据又称为数组元素,它们之间具有固定的先后顺序。用一个统一的数组名和下标来惟一地确定数组中的元素。数组中所包含的数组元素的个数称为数组的长度。数组是有类型属性的,每个数组中的所有元素都必须是同一数据类型的,可以是除void类型之外的任何一种数据类型。一个数组在内存中占据一组连续的存储单元。3北京林业大学软件教研室具有一个下标的数组称为一维数组;
2、具有两个或两个以上下标的数组称为二维或多维数组。不管是几维的数组,在使用之前首先要定义,然后在程序中才可以使用。定义一个数组,应该包括以下几个方面:(1)确定数组的名称;(2)确定数组的数据类型,即数组中所有元素的类型;(3)确定数组的结构5.1.1一维数组的定义与引用1.一维数组的定义类型说明标识符数组名[常量表达式];如:intb[5];2.一维数组的引用数组名[下标]【例5-1】定义一个一维数组,把各元素值清0,然后逆序输出各元素值。4北京林业大学软件教研室3.一维数组的初始化(1)在定义数组时对数组元素赋以初值。如:inta[5]={0,1,2,3,4}(2)可以只给一部分元素
3、赋值。如:inta[5]={0,1,2}(3)对全部元素赋初值时,可以不指定数组的长度。如:intb[]={0,1,2,3,4}(4)C++不支持数组之间的直接赋值,只能一个一个元素地赋值。5北京林业大学软件教研室4.一维数组的程序举例【例5-2】求100以内的Fibonacci数列并显示。6北京林业大学软件教研室5.1.2二维数组的定义与引用1.二维数组的定义类型说明符号数组名[常量表达式1][常量表达式2];如:inta[3][4];7北京林业大学软件教研室2.二维数组的引用二维数组元素的表示方式为:数组名[下标][下标]在引用二维数组中的元素时,只要指明该元素所在的数组名及两个下
4、标的下标值即可,可以利用它来访问数组中的每个元素,注意下标不要超过各维的大小。8北京林业大学软件教研室3.二维数组的初始化(1)分行给二维数组赋初值。如:inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}(2)可以将所有数据写在一个大括号内。如:inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}9北京林业大学软件教研室(3)可以只对数组中部分元素初始化。如:inta[3][4]={{1},{3},{5}}(4)如果对二维数组的全部元素初始化,则定义数组时第一维长度可以省略,但第二维长度不能省。如:inta[][4]={
5、1,2,3,4,5,6,7,8,9,10,11,12},inta[][4]={{0,0,7},{},{0,18}}【例5-3】输入一个3×2矩阵,求出矩阵中最小数,并显示其所在的行号和列号。分析:可用变量min存储矩阵中的最小值,初始时将min的初值设为元素a[0][0]的值,然后依次利用矩阵中的其余元素与之比较,较小者存放在min中,并同时保存行号和列号,直到最后一个元素为止。10北京林业大学软件教研室5.1.3字符数组与字符串1.字符数组的定义用来存放字符型数据的数组为字符数组,数组中的一个元素只能存放一个字符。如:charc[5],m[3][4]2.字符数组的初始化如:charc
6、[5]={‘a’,‘b’,‘c’,‘d’,‘e’}charc[]={'a','b','c','d','e'}11北京林业大学软件教研室3.字符串和字符串结束标志字符串是用一对双引号“”括起来的一串字符,如,“program”、“abcdef”等都是字符串。字符串“program”是包含7个字符的字符串,但在内存中占8个字节,最后一个字节存放‘ ’,字符串结束标志‘ ’是由系统自动添加的。如:charc[8]={“program”}等价于charc[8]={'p','r','o','g','r','a','m',' '}12北京林业大学软件教研室4.字符串的输出(1)用cout输出
7、。cout<<字符串或字符数组名;如:chars[20]={"Thisisastring."};cout<