c语言中指针用法PPT.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c语言中指针用法PPTppt课件

第六章 指针 指针是C++ 提供的一种颇具特色的数据类型,允许直接获取和操纵数据地址,实现动态存储分配。 重点: 指针的概念 6.1 指针的概念 1. 什么叫指针 注意:指针中的内容是可以动态改变的,例如point1原来指向变量a,当执行了point1 = b操作后,即指向变量b: 2. 指针的作用 (1) 实现复杂的数据结构,例如数组、链表、队列和堆栈等; (4) 在函数之间进行数据的双向传递。 指针变量所占的内存空间与所表示的数据对象的存储空间相比实在是微乎其微,因为它只是用来存放对应空间的首地址,而不是存放数据本身,所以可以节省大量的存储空间,提高内存空间的利用率。 指针类型用来定义各种类型的指针变量,例如整型指针、字符指针等等。其语法如下: 6.2 声明指针变量 1. 指针变量 2.指针变量的作用域 指针变量也有全局和局部之分: 上面的语句定义了四个变量: 例如,执行如下的操作序列后,则s2等价于s3: 4. 指针变量的初始化 5.几点说明 6.3 指针运算 指针运算实际上是地址操作,包括算术运算(加减运算)、关系运算、赋值以及取地址和间接访问等。 2.指针的加减运算 1)运算符:+、-、++、-- 。 3)对数组名施加+,- 运算 4)指针变量的++、--运算 ++:原地址加上一个地址单位(基类型的实际字节数); 3. 取地址运算 1) 运算符: 分析: (2)取字符变量c1的内存地址赋予字符型指针变量c2,使c2指向c1。 4. 间接访问 所谓间接访问是指通过指针变量访问该变量所指向的数据对象。由于不是对数据对象的直接访问,故称为间接访问。 2)作用: 实现对指针所指向的数据对象的间接访问,包括引用和赋值等基本运算。 (3)关于“*”的说明 “*”作为算术运算符,表示乘法,例如:a*b。 5.指针应用实例 “*”作为指针运算符,表示间接访问,例如:a+*p(p是指针变量)。 程序的几点说明: 6.4 指针与数组 2. 通过指针间接访问数组元素 这一特性意味着我们可以用数组名(指针)的地址偏移来代替数组元素的下标描述。 功能: 功能: 功能: 结论:上面的三个程序执行结果是相同的。 分析:此操作称为“复制右子串”。其处理方法如下: 试问,如果没有引入p指针,本问题应如何解决? 3.指针数组 (1)什么叫指针数组 可以看出:name[0]本身是一个字符指针,它存放的是Lin的首地址,实际上可以认为name[0]指向一个一维字符数组,name[1]同样也指向一个一维字符数组……,所以字符指针数组和二维字符数组有相似之处。 (2)指向指针的指针 对于指针数组而言,其数组名是指针,而且是指向指针的指针,称为二级指针。因此除了描述成指针数组之外,还可以描述成 **类型。 分析: (1)cout *pname *(pname+1);等价于: cout name[0] name[1] 分析: (1)函数参数描述成二级指针**arr,对应的实参应该是二级指针或指针数组名;而对参数的引用则应描述成arr[i]。 6.5 指针与函数 函数和指针的关系体现在以下三方面: 1.函数的指针类型参数 1)形式:可以定义成指针变量或数组。 2.指针函数 函数返回值的类型是指针类型,这样的函数称为指针函数。例如: 3 .函数指针 (2)声明函数指针 语法: (2) 用函数指针调用函数 语法: (3)函数指针用作函数参数 6.6 堆内存管理 允许程序运行过程中直接进行内存管理,这是C++的一大特色。 1.堆内存 2.申请堆内存 通过调用calloc函数、malloc函数或通过new操作符均可以为程序中的数据对象申请堆内存空间。 函数的返回值 函数类型为void *,也即无符指针类型,在实际调用时,必须依据数据对象的类型进行强制转换。 2)malloc函数 (1)格式(函数原型) 解释: 参数size:数据对象所需内存空间的大小(字节数); (2)功能 分析: ① 程序通过调用malloc函数,在运行过程中动态建立array数组; 3)new操作符 new操作符是c++专有的,用来分配堆内存,其功能类似于malloc和calloc,但不同之处在于, new是操作符而不是函数,因而更为

文档评论(0)

118zhuanqian + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档