- 1、本文档共74页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第四章指针和引用
指针就是地址,C++语言有在程序运行时
获得变量的地址和操纵地址的能力,用来地址
的变量就是指针变量。C++语言的高度灵活性
和表达能力在一定程度上来自于巧妙而恰当地
使用指针和指针变量,指针在程序中的定义和
使用也是C++语言区别于其他程序设计语言的
主要特征。正确灵活地运用指针,可以有效地
表示和使用复杂的数据结构(如链表等),可
以有效地对内存中各种不同数据进行快速处理,
能方便地使用字符串并为函数间各类数据的传
递提供了便利的方法。
本章知识目标
通过本章的学习,要求读者能掌握指针的
基本概念,熟练掌握指针变量的类型说
明和指针变量的赋值和运算方法,熟练
掌握一维数组指针表示方法,掌握二维
数组的指针表示方法,掌握指针在字符
串和函数中的使用方法,学会使用指针
进行动态内存分配,利用指针和结构体
构建链表来实现简单的管理系统,了解
引用的概念及应用。
4.3.1指针与指针变量
所谓指针,就是一个变量的地址。
因为指针是一个地址值,在C++语言
中有需要有一种特殊的变量专门用来存
放地址,这种变量叫做“指针变量”,
即指针变量是用于存放内存单元地址的
变量。
指针变量定义的一般形式为:
数据类型*标识符;
例如:
int*p;
float*q;
“*”在指针操作中有两个含义:
①如果在定义变量时“*”出现在类型与变
量名之间,例如int*p;这时的“*”只是
起到指示作用,指示p是一个指针变量,
里面只能存放地址。
②如果在程序的执行过程中“*”出现在某
一个已经定义过的指针变量之前,则此
时的“*”叫取内容运算符,取到指针变
量所指向的内存单元的内容。
例4-1输入两个整数使用指针将它们按由大到小的顺序输出。
#includeiostream.h
voidmain()
{
inta,b,t;
int*p=a,*q=b;
cout“pleaseinputaandb:”;
cinab;
if(ab)
{t=*p;
*p=*q;
*q=t;}
couta“\t”bendl;
cout*p“\t”*qendl;
}
4.3.2指针的运算
指针变量也是一种变量,因此指针变量
可以像一般变量一样作操作数参加运算。
但指针变量又与一般变量不同,其内容为
地址量,因此指针运算是以指针变量所持
有的地址值为运算量所进行的运算,其实
质是地址的运算。指针的运算包括算术运
算、关系运算和赋值运算。
1.赋值运算
若指针变量既没有初始化,也没有赋值,
那它的指向就不确定。如果此时引用指
针变量,可能会对系统造成很大的危害。
因此指针变量在使用之前必须有确定的
指向,通过给指针赋值可以解决这一问
题。
2.关系运算
两个指针变量进行关系运算时,它们
必须指向同一数据类型的数据,指针变量
的关系运算表示它们所指向的变量在内存
中的位置关系。如果两个相同数据类型的
指针变量相等,就表示这两个指针变量是
指向同一个变量。应注意,在指向不同数
据类型的指针变量之间进行关系运算是没
有意义的,指针变量与一般整数常量或变
量之间进行关系运算也是没有意义的。但
指针变量与整数0之间可进行等或不等的
关系运算。
3.算术运算
指针可以进行加减、自增自减等算术运算,指
针可以直接加减一个整数,但是运算规则是比较特
殊的,并不是简单地用指针的地址量与整数n进行直
接的加减运算。当指针p指向内存中某一数据时,
p+n表示指针p当前所指数据位置后方第n个数据的地
址,而p-n则表示指针p当前数据所指位置前方第n个
数据的地址。
指针自增、自减实际上是指针加减整数n的一个特
例,此时n为1,其物理意义是指向下一个或上一个
数据的位置。例如指针变量p进行了p++运算后,就
指向了下一个数据的位置,而进行了p--运算后,p就
指向了上一个数据的位置。
4.3.3
您可能关注的文档
- 80C51的串行通信 课件 .pdf
- 80C51微控制器的C语言程序设计 课件 .pdf
- 80C51微控制器的人机接口 课件 .pdf
- ADO.NET数据库访问模型 课件 .pdf
- ASP.NET应用程序设计 课件 .pdf
- AT89S51单片机的 课件 .pdf
- AT89S51单片机的定时器计数器 课件 .pdf
- AT89S51单片机的系统扩展 课件 .pdf
- AT89S51单片机与输入 输出外设的接口 课件 .pdf
- C++程序设计基础 课件 .pdf
- 2025年中考数学几何模型归纳训练:全等三角形模型之角平分线模型解读与提分训练.pdf
- 函数与导数压轴小题(解析版).pdf
- 九年级英语五选五阅读(适中)(含答案解析).pdf
- 2025年高考数学模拟试卷2(全国卷文科)及答案.pdf
- 2025年人防考试题库及答案(共249题).pdf
- 2025中考英语高频易错易混短语(默写版+背诵版).pdf
- 2025年新高考数学专项复习:椭圆离心率取值范围十八大题型(解析版).pdf
- 2025年新高考数学专项复习:椭圆离心率取值范围十八大题型(原卷版).pdf
- 2025年中考数学几何模型归纳训练:腰(等边)三角形中的重要模型之维维尼亚模型解读与提分训练(原卷版).pdf
- 特殊句式(知识梳理+考点训练+实战训练)(解析版).pdf
文档评论(0)