C++程序设计教程 杨国兴及例题 第5章 数组与指针新.ppt
文本预览下载声明
第5章 数组与指针 5.1 数组 5.2 指针 5.3 动态内存分配 5.4 指针作为函数的参数 5.5 指针数组与多级指针 5.1 数组 数组:具有相同数据类型的若干变量按序进行存储的变量集合 。 数组有一维、二维和多维数组。 5.1.1 一维数组 1. 一维数组的定义 数据类型 数组名[常量表达式]; 如: int a[10]; 说明: (1) 数组名与变量名一样都是标识符,必须遵循标识符的命名规则。 (2) “数据类型”是指数组元素的数据类型,可以是任一基本类型或构造类型,同一个数组的每个元素都具有相同的数据类型。 5.1 数组 5.1.1 一维数组(续一) (3) “常量表达式”必须用方括号括起来,指的是数组的元素个数(又称数组长度),它是一个整型值,其中可以包含常数和符号常量,但不能包含变量。 (4) 数组元素的下标从0开始,即数组中第一个元素的下标为0。如上面定义的数组a的第一个元素是a[0]。 (5) 一个数组中的所有元素在内存中是连续存放的。 2. 一维数组的引用 引用格式: 数组名[下标] 其中下标可以为整型常量或表达式 注意:引用数组元素时,不要使下标越界! 如上面的数组a,其下标应为0~9! 例5.1 一维数组的引用 #include iostream.h void main() { ?????? int i,a[10]; for(i=0; i10; i++) { a[i] = i*10; } for(i=0; i10; i++) { cout a[i] ; } cout endl; } 5.1 数组 5.1.1 一维数组(续一) 3. 一维数组的初始化 在定义数组的同时为数组元素提供初始值,称为数组的初始化。一维数组初始化的一般格式为: 数据类型 数组名[常量表达式] = {值1, 值2, …, 值n}; 例如: (1) int a[5] = {1,2,3,4,5}; (2) int a[ ] = {1,2,3,4,5}; 不指定数组长度,根据初值个数自动确定长度 (3) int a[5] = {1,2,3}; 初值个数小于数组长度,后面元素值自动赋为0 (4) int a[5] = {0}; 初值只写出一个0,则将所有元素都初始化为0 例5.2 用一维数组处理Fibonacci数列的前40项 #include iostream.h #include iomanip.h void main() { int i; int f[40]={1,1}; for(i=2; i40; i++) { f[i] = f[i-1] + f[i-2]; } for(i=0; i40; i++) { cout setw(12) f[i]; if( (i+1)%5 == 0) cout endl; } cout endl; } 例5.2(续) 程序运行结果: 例5.3 用冒泡法对10个整数按从小到大的顺序排序 分析:冒泡法的基本思想是通过相邻两个数之间的比较和交换,使较小的数逐渐从底部移向顶部,较大的数逐渐从顶部移向底部。以5个整数排序为例,过程如图所示。 整个排序过程由两层循环完成,第一次外层循环通过相邻两个数的比较交换,将待排序数据中的最大数8移到最后,此时最后一个数8已经排好序。第二次外层循环再把剩下的4个数两俩比较交换,将其中最大的数5移到a[3]的位置,此时最后两个数5,8已经排好序。一直到最后将所有数据都排好序。 例5.3(续一) #include iostream.h #include iomanip.h void main() { int i,j,t,a[10]; cout 请输入10个整数,用空格分隔:; for(i=0; i10; i++) cin a[i]; for(i=0; i10-1; i++) { for(j=
显示全部