1 / 17
文档名称:

第二十一章 指针 三 实例演练与提高.doc

格式:doc   页数:17
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

第二十一章 指针 三 实例演练与提高.doc

上传人:中国课件站 2011/9/6 文件大小:0 KB

下载得到文件列表

第二十一章 指针 三 实例演练与提高.doc

文档介绍

文档介绍:第二十一章指针三实例演练与提高

简单变量、数组、指针
的问题
  软件升级历史
指针的最常用用法
  分配内存
  访问指针指向的内存
小王成绩管理系统
字符串指针
  为字符串分配指定大小的空间
  字符串常用函数
    字符串比较
    字符串复制
指针数组
  什么叫“指针数组”?
  指针数组实例一
  指针数组实例二
  字符串指针数组 

简单变量、数组、指针
学习的知识点越来越多了……
刚开始会觉得很兴奋啊,学得越多越好嘛。可慢慢的就会感到压力了,各种知识点在头脑里混在一起,每个都变得模糊了。
其实,每个知识点都有它存在,或出现的理由,只要我们多做对比,就会发现学习的知识点越多,反倒越容易理解每个知识点本质。
比如说,简单变量、数组、指针,三者都是C++中用于表达数据的工具,但在表达能力上,又各有不同。
如果用建筑上的房间来比喻:

简单变量是一间房屋。优点是占用空间少,建筑时间短,缺点是一间房子只适于住一个人;
数组是房间数固定的一排房子,每个房子里头同样只住一人,但由于它有多间,所以适于多人居住,优点是可以统一管理多人,缺点一来是占用空间大,二来房间数一旦确定,就不能改变了。先头盖了10间,如果如果来了11个人,就有一人住不下,如果来了9个人,就有一间浪费。
指针呢……它不是实际房子,而是设计纸上的房子。因此,它首先有一个特点:如果你想让指针存储数据,那一定得先为它分配内存。这就像光有一张设计蓝图是解决不了四代同堂的问题的,重要的是你还得根据这张蓝图,去找块地皮盖好房子。指针的优点是可以临时决定要盖多少间房子。
下面我们回顾一个例子,以理解三者的不同用处。


先回顾一下该程序的升级过程,今天我们将对它做出两种不同方向的改进。
软件升级历史
: 本版成绩管理系统实现让计算机自动统计6个班级的成绩总分和平均分。
: 经过改进,本版可以实现多达5000个学生的成绩进行求总分和平均分,并且可以支持用户输入序号,查询任意一个学生的成绩!

在第一版,小王正在学习“循环流程”。通过在每次循环中,让用户输入一个成绩,然后保存在一个简单变量里,并累加到另一个简单变量,最终计算出总分和平均分。
第二版,由于段长要求不仅可以统计5000个学员的成绩,而且应实现成绩查询功能,这就要求程序必须同时记下5000个学生成绩。小王先是想用5000个简单变量来记下成绩——这显然太不实际了,后来学到数组,用数组轻松解决了这个问题,因为数组正是为“同时存储多个相同类型的变量”这一问题来设计的。
然而,第二版存在的不足也是显然易见的。那就是,它固定只能处理最多5000个学员的成绩。假想,这个软件要推广到全市300个学校,每个学校的学生总数都是不一样的,更惨的是每一年,一个学校的学生个数总是会有变化。难道就让我们的王老师时不时地改它的程序?
在没有指针时,惟一办法就是,浪费一点,比如定义数组元素个数为1万。目的是宁可浪费一点,也尽量不要出现不够的情况。显然,本办法只能算是一个无奈之举。难道就没有一个办法,即可以适应某个山区小学只有30名学员也情况,又可以轻松对付某大学高达2万名学员的情况?

锣声响起,锵锵锵……指针出场了。

指针是如何完成这一历史使命?带着问题,我们来学习下面的内容。
我们会在学习新内容之中,同时有选择地做一些旧知识点的复习工作。但如果你仍看不懂下面的一些代码,那得全面复习前两章的指针内容;或者,如果你连for都有些陌生,那你得重温一下小王成绩管理系统的前两个版本。

指针的最常用用法
分配内存
如何为指针分配和释放内存,上一章的内容中讲到了C++独用的new/delete、new[] / delete[] 和 C 使用的malloc, realloc/ free 方法。如果你忘了,请先复习。我们这里使用C++的方法演练。

new 只能为我们分配一个简单变量的内存,就是说new只盖了一间房子。new [] 才能为我们盖出一排的房子。

例子:
int* p; //定义一个整型指针

p = new [10];  //new [] 为我们分配出10个int大小的内存。(盖了10间房,每间住一个整数)

最近更新

2025年西宁城市职业技术学院单招职业适应性考.. 40页

2025年西昌民族幼儿师范高等专科学校单招职业.. 41页

2026年忻州职业技术学院单招职测备考题库附答.. 41页

2026年成都纺织高等专科学校单招职业技能测试.. 42页

2025年贵州民用航空职业学院单招职业倾向性考.. 39页

2025年贵州航空职业技术学院单招职业倾向性考.. 42页

2025年贵阳康养职业大学单招职业适应性测试题.. 40页

2025年辽宁工程职业学院单招综合素质考试模拟.. 41页

2026年江苏信息职业技术学院单招职业适应性测.. 41页

2025年辽宁装备制造职业技术学院单招职业倾向.. 41页

2025年达州中医药职业学院单招职业倾向性考试.. 40页

2025年通辽职业学院单招职业技能测试题库完美.. 42页

2025年郑州电子商务职业学院单招职业适应性测.. 39页

2025年郑州食品工程职业学院单招职业倾向性测.. 39页

2025年酒泉职业技术学院单招职业倾向性测试模.. 40页

2026年河南轻工职业学院单招职业适应性测试模.. 42页

2026年洛阳商业职业学院单招职业技能测试题库.. 42页

2026年深圳信息职业技术学院单招职业倾向性测.. 42页

2026年湖北体育职业学院单招职业适应性测试题.. 41页

2025年重庆科技大学单招职业技能测试模拟测试.. 39页

2025年重庆轻工职业学院单招职业倾向性测试模.. 41页

2026年漳州科技学院单招职业适应性测试模拟测.. 42页

2025年长春东方职业学院单招职业适应性测试模.. 41页

2025年长江师范学院单招职业倾向性测试题库必.. 40页

2026年甘肃林业职业技术学院单招职业适应性测.. 43页

2025年陇南师范高等专科学校单招职业倾向性测.. 41页

2025年陕西服装工程学院单招职业技能测试模拟.. 42页

2025年陕西能源职业技术学院单招综合素质考试.. 39页

ZR-003 建设单位法人授权书 1页

2023年四川省凉山州数学中考真题试卷【含答案.. 32页