- 1、本文档共127页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十章 表示复杂的数据结构 动态分配内存 有效地使用字符串、数组 在调用函数时能得到多个返回值 能直接处理内存地址 §10.1地址和指针的概念 §10.2 变量的指针和指向变量的指针变量 1. *pointer_1 等价于 a 即先进行*pointer_1运算,得到变量a,再执行运算。 2. *a 等价于 *pointer_1 等价于 a 即先进行a 运算,得到a的地址,再执行*运算 3. (*pointer_1) ++ 等价于 a++ *pointer_1 ++ 等价于 ① *pointer_1 ② pointer_1++ 是否可以将函数swap()改写成如下形式?不能。 swap(int *p1,int *p2) { int*temp; *temp=*p1; /* temp定义后并未被赋值,直接将p1所指变量赋给它,不妥。 */ p1=*p2; p2=*temp; } 能否通过下面的函数实现a和b互换?不能。 swap(int x,int y) { int temp; temp=x; x=y; y=temp; } 函数调用时,a的值传送给x,b的值传送给y。函数执行完后,x和y的值是互换了,但a和b并未互换。 能否通过下面的函数实现a和b互换?不能。 swap(int *p1,int *p2) { intp; p=p1; p1=p2; p2=p; } 数组的指针是指数组的起始地址。 数组元素的指针是指数组元素的地址。 使用指针变量指向数组元素应注意的问题: 1. 可改变指针变量的值,不可改变指针常量的值: 2. 注意指针变量的当前值 3. p可以指向数组以后的内存单元,如p=a[10](按*(a+10)处理); 但会得不到预期的结果。应保证指针指向数组中有效的元素。 4. 注意指针变量的运算 设p指向数组a(即p=a),则: 4)(*p)++: p所指向的元素值加1,即(a[0])++。 5)设p=a[i],则: *(--p) = a[--i],先使p-1=p,再取*p得到a[i-1] 。 *(p--) = a[i--],先取*p得到a[i] ,再使p-1=p 。 *(++p) = a[++i],先使p+1=p ,再取*p得到a[i+1] 。 例如: main() { int i,*arr; printf(The original array:\n); for(i=0;i<10;i++) scanf(%d,arr+i); printf(\n); inv(arr,10); /*实参为指针变量,但未被赋值*/ … } 编译时出错,原因是指针变量arr没有确定值,谈不上指 向哪个变量。 a与a[0]的值虽相同,但由于指针类型不同: a: 二维数组名,指向行 a[0]; a[0]:一维数组名,指向列元素 a[0][0]。 故 a+1 ≠ a[0]+1 ① int a[4] ; // a为数组名,有4个整型元素 ② int (*p)[4]; // *p为数组名,有4个整型元素 这4个元素分别为: (*p) [0] , (*p) [1] , (*p) [2] , (*p) [3] 图 10.29 对应于a[0][0]…a[0][3],a是二维数组名,故p是行指针,指向二维数组的每一行。如图10.30。 ∴ *(p + i) + j 是a数组第i行第j列元素的地址。 即 *(*(p + i) + j) 是 a[i][j] 的值。 10.8.2 指针运算小结 1. 指针变量加(减)一个整数,如: p++、p - -、p+i、p-i、p+=i、p-=i 是将指针变量的原值与它所跨过的内存单元字节数相加(减)。 如 p+i 代表地址:p+C*i。
您可能关注的文档
- CPP手机定位市场应用分析.pdf
- 歧口凹陷重要断裂构造与构造带特征研究.pdf
- CPU体系结构CISC及RISC.pdf
- Criteria及MyBatis学习总结.pptx
- CRP及hs-CRP,一种蛋白的“分身术”.pdf
- 气压传动基本回路(第6篇).pdf
- 气压基本及常用回路.ppt
- 汽车安全及节能国家重点实验室(清华).doc
- 汽车变速箱壳体成形工艺分析和模具设计.pdf
- 汽车测试假人用于实验测试方法.pdf
- [中央]2023年中国电子学会招聘应届生笔试历年参考题库附带答案详解.docx
- [吉安]2023年江西吉安市青原区总工会招聘协理员笔试历年参考题库附带答案详解.docx
- [中央]中华预防医学会科普信息部工作人员招聘笔试历年参考题库附带答案详解.docx
- [保定]河北保定市第二医院招聘工作人员49人笔试历年参考题库附带答案详解.docx
- [南通]江苏南通市崇川区人民法院招聘专职人民调解员10人笔试历年参考题库附带答案详解.docx
- [厦门]2023年福建厦门市机关事务管理局非在编工作人员招聘笔试历年参考题库附带答案详解.docx
- [三明]2023年福建三明市尤溪县招聘小学幼儿园新任教师79人笔试历年参考题库附带答案详解.docx
- [哈尔滨]2023年黑龙江哈尔滨市木兰县调配事业单位工作人员笔试历年参考题库附带答案详解.docx
- [上海]2023年上海市气象局所属事业单位招聘笔试历年参考题库附带答案详解.docx
- [台州]2023年浙江台州椒江区招聘中小学教师40人笔试历年参考题库附带答案详解.docx
最近下载
- 中国急性胰腺炎诊治指南(2021).docx
- 2024届高考散文阅读知识点即答题技巧概述+课件113张.pptx VIP
- 2024苏科版新教材八年级物理上册新课程内容解读课件(深度).pdf
- Unit3 第2课时Speed up Fuel up(教学设计)-三年级英语下册(外研版三起2024).pdf
- 第16课优秀影视作品欣赏与分析教学设计-2023—2024学年人教版初中综合实践活动八年级上册.docx
- 幼儿园中班音乐《章鱼和小鱼》 优质课件.pptx
- 考研真题武汉理工大学833材料科学基础历年考研真题汇编(含部分答案).docx
- 2024年度房地产市场总结报告:泉州-保利和润.docx
- 北京理工大学考博英语历年真题及详解.pdf
- 传热学(全套714页课件课件).pptx VIP
文档评论(0)