版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第十章广州大学计算机科学与教育软件学院广州大学计算机科学与教育软件学院l 主要内容主要内容10.10.数组与指针数组与指针 10.3 数组与指针数组与指针指向数组元素的指针指向数组元素的指针特点:特点:C言语规定数组名代表数组的首地址,也就是言语规定数组名代表数组的首地址,也就是第一个元素的地址,如:第一个元素的地址,如:int a10;int *p;p=&a0;135&a0数组数组a0a1a2 首地址首地址p可写为可写为 p=a; 即把即把a 数组数组的首地址赋给指针的首地址赋给指针 p 。在定义指针变量的同时在定义指针变量的同时可以赋予初值,如可以赋予初值,如int *p=
2、&a0; 等效于等效于 int *p; p=&a0; 即即 int *p=a; 作用:将作用:将a 数组的首地址即数组的首地址即a0的地址赋给的地址赋给p。a *(p+i)a0a1 aia数组数组p, ap+1, a+1p+i, a+i 阐明:阐明:*(p+i)或或*(a+i)就是就是ai,即即*(p+i)与与ai等价。等价。由于由于p与与a等价,可以以为等价,可以以为pi与与ai等价,即等价,即pi 与与*(p+i)等价,也就是等价,也就是*(p+i)可以表示为可以表示为pi 的方式,即的方式,即指针变量可以带下标。指针变量可以带下标。一个数组元素可以表示为:一个数组元素可以
3、表示为:1下标法下标法 ai或或pi2指针法指针法 *(a+i)或或*(p+i) 其中其中a为数组名,为数组名,p是指向数组的指针变量,且是指向数组的指针变量,且p=a。调用调用VC程序程序一个数组元素可以表示为:一个数组元素可以表示为:1下标法下标法 ai或或pi2指针法指针法 *(a+i)或或*(p+i) 其中其中a为数组名,为数组名,p是指向数组的指针变量,且是指向数组的指针变量,且p=a。调用调用VC程序程序例例 10.6 经过指针变量经过指针变量输出输出a数组的数组的10个元素。个元素。分析详见分析详见P233-图图10.14例例10 将数组中个整数按相反顺序存放。将数组中个整数按相
4、反顺序存放。用数组名作函用数组名作函数参数数参数例例 10.7 将将数组数组a中中n个整数按相个整数按相反顺序存放。反顺序存放。方法参看方法参看P237-图图10.16调用调用VC程序程序对刚刚的程序可以作一些改动。将对刚刚的程序可以作一些改动。将函数函数inv中的形参改成指针变量。中的形参改成指针变量。 图图10.17。例例 10.7 指针指针方法。方法。方法见方法见P238-图图10.17。调用调用VC程序程序10.3.4多维数组与指针多维数组与指针地址地址 2000元素值元素值 1 2002 3 2004 5 2006 7a,a0,*(a+0),*a,&a00a0+1a0+2a0
5、+3,&a03a00a01a02a03地址地址 2021元素值元素值 9 2021 11 2021 13 2021 15地址地址 2021元素值元素值 17 2021 19 2020 21 2022 23a+1,a1,*(a+1),&a10a1+1,*(a+1)+1a1+2,*(a+1)+2a1+3,&a13*(a+1)+3,a10a11a12a13a+2,a2,*(a+2),&a20a2+1,*(a+2)+1a2+2,*(a+2)+2a2+3,&a23*(a+2)+3a20a21a22a23由于由于*a就是就是a0是数组是数组名,故也是名,故也是地址,
6、不是地址,不是元素值。元素值。阐明:对于二维数组阐明:对于二维数组1a0,a1,a2代表各行的首地址,而不是元素代表各行的首地址,而不是元素值;值;2*(a+1)+2不要写成不要写成*(a+1+2)由于后者为由于后者为*(a+3);3*(a+i)和和ai等价,表示各行首地址,而不是元等价,表示各行首地址,而不是元素值;素值;如:如:*(a+i)+j, ai+j 就是地址就是地址&aij 的值。的值。例例10.10调调用用VC程程序序留意:留意:a0与与*(a+0)、&a10与与*(a+1)+0是等价的。是等价的。 指向多维数组元素的指针变量指向多维数组元素的指针变量指针数组的声
7、明指针数组的声明 int (*p)4;表示表示p为指向每行有为指向每行有4个元素的数组的指针。个元素的数组的指针。指向数组的指针变量指向数组的指针变量1357911131517192123pp+1p+2*(p+i)表示第表示第i行首地行首地址,址,*(p+i)+j表示第表示第i行第行第j个地址;个地址;*(*(p+i)+j)表示第表示第i行行第第j个元素值。个元素值。b00b03b13b221357911131517192123p, ap+1p+2jj+1j+2j+3int (*p)4;p=a;a01a03 p为指向每行有为指向每行有4个元素的数组的指针。个元素的数组的指针。例例10.12 输出二维数组任一行任一列元素的值。输出二维数组任一行任一列
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 门诊部护理及治疗规范
- 塑料制品在工业设计中的应用考核试卷
- 供应链优化项目计划书考核试卷
- 大数据在数字创意设计评价中的应用与发展考核试卷
- 内陆养殖实现乡村振兴的新模式考核试卷
- 企业教育培训的团队协作考核试卷
- Salbutamol-hemisulfate-Standard-生命科学试剂-MCE
- 通勤车司机岗位培训
- 白酒委托加工方案
- 2024年电动客车项目立项申请报告模板
- 谈心谈话记录100条范文(6篇)
- 头痛的国际分类(第三版)中文
- 音乐ppt课件《小小的船》
- 幼儿园教学课件语言教育《雪地里的小画家》
- 结构化面试经典100题及答案
- ESG引领下的西部城市再出发-新型城市竞争力策略研究白皮书
- 小学生班干部竞选自我介绍PPT模板公开课一等奖市赛课获奖课件
- 万科物业岗位说明书2
- 音乐教学说课
- 边坡喷锚施工方案全套资料
- 国家安全教育知到章节答案智慧树2023年临沂职业学院
评论
0/150
提交评论