资源描述:
《C++程序设计 教学课件 作者 王春玲 第4章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章数组、指针与引用本章主要内容1.一维数组、二维数组的定义、初始化和访问。2.字符串与字符数组。3.常用字符串函数(strcat,strcpy,strcmp,strlen等)。4.指针和指针变量的概念,指针与地址运算符,指针与数组,指针与字符串。5.引用的基本概念、定义和使用。6.结构体和共用体的定义,结构体和共用体变量的初始化和引用。7.堆内存的分配和释放。4-1数组数组是由若干相同数据类型的数据组成的有序集合。数组中每一个数据又称为数组元素,它们之间具有固定的先后顺序。用一个统一的数组名和下标来惟一地确定数组中的元素。数组中
2、所包含的数组元素的个数称为数组的长度。数组是有类型属性的,每个数组中的所有元素都必须是同一数据类型的,可以是除void类型之外的任何一种数据类型。一个数组在内存中占据一组连续的存储单元。具有一个下标的数组称为一维数组;具有两个或两个以上下标的数组称为二维或多维数组。不管是几维的数组,在使用之前首先要定义,然后在程序中才可以使用。定义一个数组,应该包括以下几个方面:(1)确定数组的名称;(2)确定数组的数据类型,即数组中所有元素的类型;(3)确定数组的结构4-1-1一维数组1.一维数组的定义类型说明标识符数组名[常量表达式];如:in
3、tb[5];2.一维数组的使用数组名[下标]【例4-1】定义一个一维数组,把各元素值赋为其下标值,并反向输出各元素值。3.一维数组的初始化(1)在定义数组时对所有的数组元素赋以初值,如:inta[5]={0,1,2,3,4};(2)在定义数组时只给一部分元素赋值,如:inta[5]={0,1,2};(3)如果想使一个数组中全部元素值为1,可以写成:inta[5]={1,1,1,1,1};但不能写成:inta[5]={0*5};(4)在对数组的全部元素赋初值时,可以不指定数组的长度。如:inta[5]={0,1,2,3,4};可以写成
4、:inta[]={0,1,2,3,4};4.一维数组的程序举例【例4-2】编写程序,输入10个数,从小到大排序,并输出排好序的10个数。冒泡排序1.二维数组的定义类型说明符号数组名[常量表达式1][常量表达式2];如:inta[3][4];5-1-2二维数组2.二维数组的使用二维数组元素的表示方式为:数组名[下标][下标]在引用二维数组中的元素时,只要指明该元素所在的数组名及两个下标的下标值即可,可以利用它来访问数组中的每个元素,注意下标不要超过各维的大小。3.二维数组的初始化(1)分行给二维数组赋初值。如:inta[3][4]={
5、{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}(3)可以只对数组中部分元素初始化。如:inta[3][4]={{1},{3},{5}}(4)如果对二维数组的全部元素初始化,则定义数组时第一维长度可以省略,但第二维长度不能省。如:inta[][4]={1,2,3,4,5,6,7,8,9,10,11,12},inta[][4]={{0,0,7},{},{0,18}}4.二维数组程序举例【例4-3】将
6、一个二维数组行和列元素互换,存到另一个二维数组中。例如:【例4-4】编写程序,输入M个学生的N门课程的成绩,并分别求出每个学生的平均成绩和每门课程的平均成绩。1.字符数组的定义用来存放字符型数据的数组为字符数组,数组中的一个元素只能存放一个字符。如:charc[5],m[3][4]2.字符数组的初始化如:charc[5]={‘a’,‘b’,‘c’,‘d’,‘e’}charc[]={'a','b','c','d','e'}4-1-3字符数组3.字符串结束标志字符串是用一对双引号“”括起来的一串字符,如,“program”、“abcde
7、f”等都是字符串。字符串“program”是包含7个字符的字符串,但在内存中占8个字节,最后一个字节存放‘ ’,字符串结束标志‘ ’是由系统自动添加的。如:charc[8]={“program”}等价于charc[8]={'p','r','o','g','r','a','m',' '}4.字符串的输出(1)用cout输出。cout<<字符串或字符数组名;如:chars[20]={"Thisisastring."};cout<
8、t方法。cout.put(字符或字符变量);利用这种方法,每次只能输出一个字符;要输出整个字符串,应采用循环的方法。如:#includevoidmain(){chars[20]={"Thisisastring.