- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++程序设计 连卫民 主编 第7章 指针与引用的程序设计 本章主要内容: 7.1 指针的基本概念(重点) 7.2 数组和指针(重点) 7.3 函数和指针(重点) 7.4 引用(重点) 7.5 动态存储管理 7.6 上机实训 本章教学目标: 了解函数与指针的关系、如何合理使用动态内存空间 熟悉指针和引用的基本概念、指针和引用作函数参数、动态申请和释放内存的方法 掌握各种类型指针的定义及使用、指针函数的定义与使用、利用指针处理数组和函数的方法、引用的定义与使用 7.1 指针的基本概念 在运行时,程序中定义的变量、使用的数据,包括程序代码本身,都要在内存中占有一块存储区域。 7.1.1 引入指针的目的 1. 地址的概念 计算机的内存以字节为基本存储单元顺序组织而成。计算机在使用内存时,总是从0开始为所有存储单元依次编号,这个编号就是地址。 在程序中,总是以变量形式使用内存数据,不需要也没必要关心这个数据的实际存储位置。实际上,在程序编译成可执行文件后,这些变量名已经不存在,替代变量名的就是这些变量的内存地址。 7.1 指针的基本概念 7.1.1 引入指针的目的(续) 2. 用地址处理数据的优势 在用C++进行程序设计时,一般不关心具体的地址值,但却经常使用地址来操作数据。因为使用地址有时比直接使用变量更有效率。 比如,如果需要对多个字符串进行排序处理,采用交换字符串内容的方法显然是不可取的,因为不同的字符串的长度一般不一样,这时,就可以使用代表字符串的地址来代替字符串实现排序,不但解决了问题,而且提高了速度。 3. 指针的概念 地址就是指针。变量的指针就是指变量的内存地址。保存指针值的变量称为指针变量。这个指针指向的位置处存放的数据,就叫指针指向的数据。如果一个指针不指向任何数据,它被称为空指针,用符号NULL表示。 指针也有类型之分。指针的类型就是它所指向的数据的类型。 7.1 指针的基本概念 7.1.2 指针的定义 1. 指针的定义和初始化 指针的定义,就是指指针变量的定义。后面提到的指针,一般指指针变量或常量。在不引起混淆的情况下,后面不再区分指针和指针变量。 指针的定义格式为: 类型名 *指针变量名[=指针表达式]; 例如: (1) int *pi; //指向整型数据的指针变量pi, 没有初值 (2) char *pc=NULL;//指向字符型的指针变量pc,初值为空 (3) int i,*p=i; // 指向整型数据的指针变量p,它的初值是整型变量i的地址 7.1 指针的基本概念 7.1.2 指针的定义(续) 2. 常值指针 有时,我们不希望改变某些指针的值。这时,可以使用const把一个指针定义为常值指针。根据const出现位置的不同。 常指针的定义格式为: const 类型名 *指针变量名[=指针表达式]; 类型名 *const 指针变量名=指针表达式; const 类型名 * const 指针变量名=指针表达式; 例如: int i=3,j=4; // 定义两个整型变量 const int *p=i; // 定义一个指向常量的指针 int *const p=i; // 指向变量的常指针,必须初始化 const int *const p=i; // 指向常量的常指针,必须初始化 7.1 指针的基本概念 7.1.3 指针的运算 1. 赋值运算 任何类型的指针都可以赋予空值NULL,也可以使用同类型的指针或地址赋值。另外,任何类型的指针都可以赋给void型的指针,但反过来却不行。 例如: int i=3,*p=i; void *p1,*p2=NULL; p1=p; // 正确 p=p2; // 错误 7.1 指针的基本概念 7.1.3 指针的运算(续) 2. 取值运算 取值运算的格式为: *指针变量 其作用是取指针所指向地址处存放的值。引入指针的目的并不仅仅是处理地址,更主要的是通过指针处理数据。 例如: int i=3,*p=i; // p为指针变量 cout*p; 输出结果为: 3 7.1 指针的基本概念 7.1.3 指针的运算(续) 3. 关系运算 关系运算一般用在同类型的两个或两个以上指针都指向同一个连续的数据区的情况。 (1)判断
您可能关注的文档
- C#程序设计陈语林 第05章新.ppt
- C#程序设计陈语林 第06章新.ppt
- C#程序设计陈语林 第07章新.ppt
- C#程序设计陈语林 第10章新.ppt
- C#程序设计基础 杨棉绒 李栋 张鑫 第1章 C#概述新.ppt
- C#程序设计基础 杨棉绒 李栋 张鑫 第2章 C#基本语法新.ppt
- C#程序设计基础 杨棉绒 李栋 张鑫 第3章 在C#中实现OOP新.ppt
- C#程序设计基础 杨棉绒 李栋 张鑫 第4章 C#中的高级概念新.ppt
- C#程序设计基础 杨棉绒 李栋 张鑫 第8章 C#的控件新.ppt
- C#程序设计基础 杨棉绒 李栋 张鑫 第10章 线程新.ppt
- C++程序设计 连卫民 何樱 韩彦锋 等 第8章 类与对象的程序设计新.ppt
- C++程序设计 连卫民 何樱 韩彦锋 等 第9章 复杂对象的程序设计新.ppt
- C++程序设计 连卫民 何樱 韩彦锋 等 第10章 类继承的程序设计新.ppt
- C++程序设计 连卫民 何樱 韩彦锋 等 第11章 类多态的程序设计新.ppt
- C++程序设计 连卫民 何樱 韩彦锋 等 第12章 模板的程序设计新.ppt
- C++程序设计 连卫民 何樱 韩彦锋 等 第13章 IO流的程序设计新.ppt
- C++程序设计 连卫民 何樱 韩彦锋 等 第14章 C++课程设计新.ppt
- C++程序设计 连卫民 主编 第1章 程序设计概述新.ppt
- C++程序设计 连卫民 主编 第2章 C++基础知识新.ppt
- C++程序设计 连卫民 主编 第3章 选择结构的程序设计新.ppt
最近下载
- 1小纸条 高考成语三千 日积月累记练(测试版)001-025 (1).docx
- 《法理学》课件(第五章:法律关系).ppt VIP
- 2025年自习室市场用户付费意愿与自习室服务质量提升策略分析.docx
- 生物安全法的试题及答案.docx VIP
- 《全大学进阶英语综合教程3》Unit-4教案.pdf VIP
- 单句语法填空专项训练100题(基础知识)(解析版).docx VIP
- 法理学第五章 法律关系.ppt VIP
- 专题02 数轴中的动点问题的七种考法(原卷版)【2025数学常考压轴题上册七年级北师版】.docx VIP
- BP85956D_CN_DS_Rev.0.91 规格书晶丰明源家电电源.pdf VIP
- 思想道德与法治(23版):第六章 学习法治思想 提升法治素养.pptx
文档评论(0)