第8章_指针-123.pptVIP

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

第8章 指针 内容提要 指针的概念 难点:理解指针数据类型 用指针做函数参数,向函数传递变量值、数组元素和字符串 用指针数组处理多个字符串 指向数组的指针与指针数组的区别 带参数的main函数; 动态内存分配函数及其应用 一维、二维动态数组的实现 指向函数的指针 Skill 用指针做函数参数编程 为什么引入指针的概念 铁杆C/C++程序员最挚爱的武器:指针 C/C++的高效、高能主要来自于指针 很多不可能的任务由指针完成 大多数语言都有无数的“不可能” 而C语言是 “一切皆有可能” —— 李宁 “Impossible is Nothing” —— adidas 为什么引入指针的概念 Mission Impossible 为什么引入指针的概念 指针 为函数提供修改变量值的手段 为C的动态内存分配系统提供支持 为动态数据结构(如链表、队列、二叉树等)提供支持 改善某些子程序的执行效率 变量 (Variables)与变量的地址 (Address) 变量 (Variables)与变量的地址 (Address) 变量 (Variables)与变量的地址 (Address) 变量 (Variables)与变量的地址 (Address) 变量 (Variables)与变量的地址 (Address) 指针(Pointer)的概念 什么类型的变量可以存放变量的地址? 指针类型——存放地址型数据的特殊数据类型 指针变量——专门用于存放地址型数据的变量 变量的指针←→变量的地址 Declaring pointers Declaring pointers Declaring pointers How to declare two pointers of the same type? use int *p1, *p2; rather than int *p1, p2; Pointer Assignments Pointer Assignments Pointer Assignments int i,*p; p=i; Dereferencing Pointers and the Address Operator int i = 24; i is an int variable i is like an int pointer, pointing to the variable i but you must not assign to it Dereferencing Pointers and the Address Operator int *p; p = i; p is an int pointer *p is the contents of the memory object p points to *p is exactly like an int variable 像普通变量一样使用*p ,*取指针p指向内存的内容 Dereferencing Pointers and the Address Operator Using Pointers Using Pointers Using Pointers int i; int *iPtr = i; int j = 3; int *jPtr = j; Consider: *jPtr = *iPtr; i = 4; *jPtr = i; iPtr = j; pointer manipulation ——算术运算 short *p, a[10]; p = a; p++; p值增加多少? pointer manipulation ——算术运算 short *p, a[10]; p = a; p++; p值增加多少? 如果short改成long,p值增加多少呢? 指针的加减运算是以其基类型的字节长度为单位的 pointer manipulation ——算术运算 Pointers and Errors To increment a dereferenced pointer, use (*p)++ rather than *p++ /* correct but means … */ pointer manipulation ——关系运算 指向同一种数据类型的两个指针才能进行关系运算 值为1或0 p q p q p == q 不能与非指针类型变量进行比较 pointer manipulation——赋值运算 指针在使用前一定要赋值 确定指针指向哪里 为指针变量赋的值必须是一个地址 指针与函数 简单变量做函数参数——Call by Value 不能修改参数 形参(paramet

文档评论(0)

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

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

1亿VIP精品文档

相关文档