第04章C++数组与指针课件

上传人:我*** 文档编号:141161402 上传时间:2020-08-04 格式:PPT 页数:16 大小:338.50KB
返回 下载 相关 举报
第04章C++数组与指针课件_第1页
第1页 / 共16页
第04章C++数组与指针课件_第2页
第2页 / 共16页
第04章C++数组与指针课件_第3页
第3页 / 共16页
第04章C++数组与指针课件_第4页
第4页 / 共16页
第04章C++数组与指针课件_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《第04章C++数组与指针课件》由会员分享,可在线阅读,更多相关《第04章C++数组与指针课件(16页珍藏版)》请在金锄头文库上搜索。

1、1,第四章 数组与指针 4.1 数组的概念与声明 4.1.1 数组的概念 数组是一个由类型相同的变量组成的线性序列。概念上,它如 同代数中的向量:(a1, a2, . , an)。 4.1.2 数组的声明 与简单变量一样,在使用前必须声明之。其声明形式如下: int a10; /声明 a 是一个长度为10的整型数组,a是数组名; 数组a中元素的变量名以及它们的存储空间情况,如下所示:,2,说明: (1)数组中各元素的下标是从0 n-1。即它们的变量名依次为:,通常,它们也被称为“下标变量”。,(2)数组中各元素所占用的存储单元,它们的地址是连续的(即地 址相邻)。如下所示:,变量名: 地 址:

2、,3,4.1.3 数组的初始化 是指:在数组声明时为其中所有的下标变量赋值。 int a10=1,2,3,4,5,6,7,8,9,10;,说明: 初始化的几种形式(参见P.75),4,4.1.4 下标变量的引用 下标变量可以像简单变量一样地被使用,而且元素的下标可以是 常量、变量、表达式。 例如: ai=ai-1+1; cinai; coutai; 等等。 注意: 引用数组名将表示对数组进行整体操作,除非作为 函数的参数或字符串时,否则,其他情况下,必须以引 用下标变量的方式来处理数组(如:赋值、输入、输出 等等操作)。,5,4.1.5 数组的基本操作 参见P.76 (1)数组元素的输入 (2

3、)数组元素的输出 (3)数组元素的求和 (4)求数组中的最小(大)元素的值 (5)求数组中的最小(大)元素的下标,6,4.1.6 数组的应用 数组主要用于存放并且处理一组类型相同的数据。 如:排序、检索等操作。 参见P.77/【例】4.3、4.4; P.95/【例】4.13-4.14;,7,例4-1 一维数组的排序(非递减)。,void main( ) int a =79,97,68,77,89,84,62, 55,78,98,79,67,85,71,65,80,100; int i, j, k, x, temp, len; len=sizeof(a)/sizeof(int); for(i=0

4、;ix) x=aj; k=j; ; temp=ai; /ai与ak交换值 ai=ak; ak=temp; for( i=0;ilen; i+)cout a it ; ,sizeof是运算符,其语法形式: sizeof(数组名或变量名或类型名) 运算结果为该数组或变量或类型所占内存的字节数。,8,例4-2 对一批学生的百分制成绩,统计出其中100分、9099分、8089分、 09分的人数。,#define NUM 20 void main( ) int scoreNUM; /声明成绩数组score int counter11; /声明计数器数组counter int i; srand (unsi

5、gned) time(NULL); for(i=0;iNUM; i+) scorei=(int)(rand()%101); /利用随机函数产生成绩for(i=0;i11; i+) counteri=0; /计数器数组counter置0 for(i=0;iNUM; i+) counter scorei/10 +; /利用counter数组计数 for(i=0;i11; i+) if (i!=10) cout(i*10)-(i*10+9):counter iendl; else cout(i*10):counter iendl ; ,9,课外练习关于一维数组 (1)阅读理解程序 P.76基本操作;

6、 P.77/【例】4.3、4.4; P.95/4【例】4.134.14; (2)参见P.100 三、程序填空/1、2、3、5; (3)编程序: 将一个已知数组a中的元素颠倒存放。 例如,原来为:(a1,a2,a3,a4,an), 处理后为:(an,an-1,a3,a2,a1)。 (4)编程序:输入n(n可变,但不超过20)个整数,输出它们的平均值以及所有超过平均值的数。,10,4.2 二维数组的概念与声明 4.2.1 二维数组的概念,4.2.3 二维数组的声明,4.2.6 二维数组的基本操作 课外练习:p.104/四-1.,4.2.3 二维数组的声明参见P.80,4.2.4 二维数组的内存情况

7、,4.2.5 二维数组的初始化,11,4.3 字符数组与字符串 “字符串的内存情况”、“处理字符串的库函数”参见P.84,课外练习参见P.100 二、读程序,写运行结果/2.,12,4.4 指针及其与数组的关系,4.4.4 指针与数组参见P.87,4.4.1 指针的概念参见P.35,4.4.2 指针的运算,4.4.3 利用指针动态申请和释放内存空间运算符new与delete,4.4.5 指针与字符串参见P.92,13,关于指针的一些说明及例子若有以下变量声明: int a=2,*p= p=,则它们的物理关系可以如下图所示:,若接着执行下面语句: a=2;,*p=3;,若接着执行: couta=

8、aendl; cout*p=*pendl; 则输出:,由此可见,这时的*p与a 是等价的它也可以作为 变量a的“名字”来使用!,a=3 *p=3,进一步而言,由于指针p也是变量,因此我们还 可以如下定义另一个指向指针变量p的指针变量q: int *q=,这时,由于 *q与p等价,因此*q 与 *p、a就都是等价的了它们都可以作为变量a的“名字”来使用!,切记: 每当一个指针(p)指向一个变量(a)时,*指针名(*p)就相当于该变量(a)的一个“别名”也叫做: 通过指针(p)间接访问变量(a)!,15,为什么声明指针时需要指定类型呢?而指针的类型又有什么作用呢? 我们来看下面的情况: int a

9、=1, *pa=,在前面我们已经知道,指针pa、pch的值分别是变量a、ch的 首地址而已。那么每当遇到*pa、*pch时,系统是如何知道 pa指向的变量占用了4个字节、而pch指向的变量只占用了2 个字节呢?.这就是为什么声明指针时需要指定类型!,变量占用的字节地址,a,ch,切记: 每个指针可以指向相同类型的任何变量,但决不允许指向不同类型的变量!如: int a,b,*p; char ch; p=/错误!不能指向ch,16,课外练习关于指针 (1)阅读理解程序 P.37/【例】2.12.3; P.95/【例】4.94.12、4.15、4.16; (2)参见P.100 一、选择题/18 二、读程序,写运行结果/1、3; 三、填空题/4; 四、编程题/2、3、4;,上机安排 下周四(4月22日)上机题目(5个)如下: p.261/7、9; p.263/3、4、7;,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号