第5.1章指针的概念摘要.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文档。上传文档
查看更多
CSE1301 Sem 1-2006 * Lecture 16: Pointers * CSE1301 Sem 1-2006 * Lecture 16: Pointers * 指针通常取名为 varPtr 类型是t的变量的地址是*t类型的 CSE1301 Sem 1-2006 * Lecture 16: Pointers * CSE1301 Sem 1-2006 * Lecture 16: Pointers * CSE1301 Sem 1-2006 * Lecture 16: Pointers * CSE1301 Sem 1-2006 * Lecture 16: Pointers * CSE1301 Sem 1-2006 * Lecture 16: Pointers * CSE1301 Sem 1-2006 * Lecture 16: Pointers * CSE1301 Sem 1-2006 * Lecture 16: Pointers * CSE1301 Sem 1-2006 * Lecture 16: Pointers * * 被调用函数swap中交换了形参i,j的值,但是因为参数传递是单向的,形参、实参占用的是不同的内存空间,所以在尽管在swap中交换了形参i,j值,实参a,b不会改变。程序可以编译通过,但结果并不是我们所希望的。 * * 指针变量在使用前必须赋值! 被调用函数swap中交换了形参指针变量pi,pj的值(地址),但是因为同样是参数的单向传递,形参、实参占用的是不同的内存空间,所以在尽管在swap中交换了形参指针变量pi,pj值,实参指针变量pa,pb不会改变,还是分别指向a,b。程序可以编译通过,但结果也不是我们所希望的。 * 要在被调用函数中,修改主调函数的变量值应当 函数参数使用指针变量,在函数中交换指针变量值 * 被调用函数swap中交换了形参指针变量pi,pj的值(地址),但是因为同样是参数的单向传递,形参、实参占用的是不同的内存空间,所以在尽管在swap中交换了形参指针变量pi,pj值,实参指针变量pa,pb不会改变,还是分别指向a,b。程序可以编译通过,但结果也不是我们所希望的。 * * A = 1; B = 2; A = 2; B = 2; 但实验发现结果为 1,这个1 又是如何来的呢?有点复杂。 首先,++优先计算,所以应先计算:parr++ 。 结果是parr指向了下一个元素:2。因为这是后置++,所以,它必须返回自己计算之前的值;所以,在改变parr之前,编译程序会生成一个临时变量,计算原先parr的值。我们假设为 old_parr 。下面是第二步操作: A = *old_parr。 由于 old_parr 是 parr 原来的值,指向第一个元素,所以 A 得到值: 1 。 * * 11,41,20 12,42,20 * * We’re told so often that we’re a nation of consumers that we don’t blink when the media use “consumer” and “person” interchangeably. CSE1301 Sem 1-2006 * Lecture 16: Pointers * 指针变量的申明 int* numPtr; float* xPtr; Example: 任何类型的变量都可以有指针变量指向它 int *numPtr; float * xPtr; Example: * 的位置在类型和变量名之间的任何位置都可以 指针变量使用说明 打印指针中存放的地址值用 %p 格式转换序列 printf(“%p”, numPtr); Example: 可以用操作符将变量的地址赋给相容的指针 “compatible” pointer int aNumber; int *numPtr; numPtr = aNumber; Example: 指针变量使用说明 int *numPtr; 指针未被初试化! ??? numPtr 指针变量使用说明 int *numPtr = NULL; NULL numPtr 申明指针时,最好同时把它初始化为 NULL (一个特殊的指针常量) 解析操作符 * 访问指针变量所指向的变量的值 a.k.a 解析操作符 “dereferencing operator” 区别于申明指针变量时的类型定义符 * cPtr: 0x2004 NULL A c: 0x2000 B 指针和解析操作符 ? Example: char c = ’A’; char *cPtr = NULL; cPtr = c; *cPtr = ’B’

文档评论(0)

基本资料 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档