- 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 课件 第6章 指针、引用和动态空间管理
第6章 指针、引用和动态空间管理 第6章 指针、引用和动态空间管理 6.1 指针概述 6.2 指针操作符与指针表达式 6.3 指针与数组 6.4 指针与函数 6.5 指针与字符串 6.6 指针与自由空间 6.7 引用的概念及应用 6.1 指针概述 例子: int a=8;a=a+10; 问题:名、类型和值是变量三要素,含义:a+10?a. 大家知道,计算机并不直接识别a,那么赋值操作在计算机内部如何实现? 变量的指针:变量所占存储单元的首地址称为变量的地址,该地址也称变量的指针. 内存存取方式 直接存取:直接按变量名或地址存取变量值。 间接存取:通过定义一种特殊的变量专门存放内存或变量的地址,然后根据该地址值再去访问相应的存储单元 。 6.1 指针概述 指针与指针变量 C++中,一个变量的地址即为该变量的指针。 可以用“变量名”的方法获得,这里是C++的取地址运算符号. 指针变量:专门存放地址的变量 如前面的p即是一个指针变量,它存放的是a的地址4000。 指针变量的定义 [存储类型] 数据类型 *指针变量名1[, *指针变量名2[,…]] 例如: int *p1; static int *p2; char *da; 上面定义了名为p1,p2和da的三个不同类型指针。 6.1 指针概述 指针变量的初始化和赋值 定义指针变量后,一般要求在使用之前给它赋一个合法的值(否则程序中使用指针就有可能导致系统崩溃). 由于指针是保存地址的变量,所以赋予它的值必须是指针量。 指针变量初始化: 存储类型 数据类型 *指针变量名=初始指针值; 例如:int a; int*pa=a;将变量a 的内存地址作为初始值赋予int型指针pa。 指针变量赋值: 指针变量名=指针表达式; 例:int a=8,b=10,*p,*pb; p=a,pb=b; pb=p; 6.1 指针概述 间接访问--通过指针变量访问其指向的单元 *--间接引用运算符 在表达式中“*指针量”即表示指针所指向的单元 例: #include iostream.h void main() { int a=8,*p; p=a; cout“a=”a“,*p=”*pendl; *p=16; cout“a=”a“,*p”*p endl; cout“p=”p endl; } 6.1 指针概述 指向指针的指针变量 由于指针变量也占据一定的空间,那么其起始地址也可以利用指针变量来保存。这个指针变量称为指向指针的指针变量,也称二级指针。声明二级指针的形式如下: 存储类型 数据类型 **指针变量名 理解1:其中的两个星号“**”表示二级指针;数据类型是指通过两次间接寻址后所访问的变量的类型。 理解2:指针变量是指向某类型指针(该指针指向了定义时的数据类型)的指针变量.即(数据类型 *) *指针变量名 例如: int i,*p=i; int **pp=p; pp指向整型指针p,而p指向整型量。 6.1 指针概述 例 #includeiostream.h void main() { int a; int *p=a,**pp=p; a=1; cout”a=”aendl; cout”*p=”*pendl; cout”p=”pendl; cout”*pp=”*ppendl; cout”**pp=”**ppendl; } 6.1 指针概述 回顾: 指针与指针变量 指针类型 指针变量的定义 指针运算符 -取地址,*-间接引用 指向指针的指针变量 应该注意,指针除了可以指向变量之外,还可以指向内存中其他任何数据结构,如数组,结构体和联合体等,它还可以指向函数, 内存的某个区域等,后面将陆续介绍。一般而言,指针所指向的的数据(称为指针的目标)才是需要处理的数据。 6.2 指针运算与指针表达式 指针运算: 以指针变量所保存的地址值为运算量进行的运算。指针运算的实质是地址的计算。指针的运算与普通变量的运算在种类上和意义上都是不同的。指针运算的种类是有限的,它只能进行算术运算、关系运算和赋值运算。 指针的算术运算 指针的算术运算是按C++地址计算规则进行的,这种运算与指针指向的数据类型有密切关系。设px和py是指向具有相同数据类型的一组若干数据的指针,n是整数,则指针可以进行的算术运算有如下几种: px+n,px-n,px++,++px,px--,--px,px-py 6.2 指针运算与指针表达式 例 #includeiostream.h void main() { int a[10],sum=0; int * iptr=a; for(int i=0;i10;i++) a[i]=i*2; for(int i=0;i10;i++) { sum+=*iptr; iptr++; } cout“sum is”
您可能关注的文档
- 2012年九年级上册语文苏教版 《散文家谈散文》课件.ppt
- 2012年“直通中考”语文热点主题读与作:追求美好生活.doc
- 2012年第十二届子陵杯八年级学科竞赛(二试)语文试题.doc
- 2012年湖南省中考语文模拟试卷27.doc
- 2012年高考化学一轮复习1.1氧化还原反应(大纲版)同步练习.doc.doc
- 2012高三地理复习课件第3讲.ppt
- 2012高考一轮复习物理(要点 命题导向 策略)11-37固体、液体和气体.ppt
- 2012最新衣柜移门图片、移门装修设计效果图.doc.doc
- 2012高考热门黄金特辑:化学.doc.doc
- 2013-2014学年山东省东营市利津县第一实验学校八年级数学下册课件:19.2.1《矩形的判定》(人教版).ppt
文档评论(0)