- 4
- 0
- 约1.83千字
- 约 57页
- 2018-01-21 发布于湖北
- 举报
第12章 再谈指针
;【任务12.1】判断回文;
指向一维数组的指针
对一维数组元素的访问共有三种方式:
1.通过下标访问数组元素:
int a[10], i ;
for (i = 0; i 10; i++)
a[i] = i ;
; 2.通过地址访问数组元素
如下语句通过数组元素的存储地址实现为每个 数组元素赋值:
int a[10], i ;
for (i = 0; i 10; i++)
*(a + i) = i ;
其中,a+i表示第i个数组元素在内存中的起始地址,*(a + i)用间接引用运算符访问地址为a+i的存储单元,相当于a[i]。 ;;如下语句通过指向数组元素的指针实现为每个数组元素赋值:
int a[10], i ;
int *p = a ;
for (i = 0; i 10; i++)
*(p + i) = i ;
如下语句同样实现为数组元素赋值:
int a[10], i ;
int *p = a ;
for (i = 0; p (a + 10); i++, p++)
*p = i ; ;;;;指向二维数组的指针
二维数组是一维数组的推广,即可以把二维数组的每一行看成是一个一维数组,其中每个数组元素是一个一维数组,如图11.4所示。
a为二维数组的首地址,也就是数组a[0]的首地址,则a + 1表示数组a[1]的首地址,a + 2表示数组a[2]的首地址,如图11.5所示。则二维数组元素a[i][j]的存储地址a[i][j]为a[i] + j。
;12.1 二维数组指针 ;12.1 二维数组指针 ;;2.通过地址访问数组元素:
对于二维数组元素a[i][j],“[ ]”实际上是变址运算符,即将元素a[i][j]的存储地址转换为a[i] +j。因此,为了提高运行速度,可以直接通过地址访问数组元素。例如,如下语句通过数组元素的存储地址实现为二维数组元素赋值:
int a[3][4] ;
int i, j ;
for(i = 0; i 3; i++)
for(j = 0; j 4; j++)
*(a + i * 4 + j) = i + j ; ;;;如果数组元素是指针,则构成了指针数组。
[语法]声明一维指针数组的一般形式如下:
;[语义]定义一个指针数组变量,数组元素为指向基类型的指针。
如下语句定义并初始化一维数组str[3],元素str[i]为字符串指针,其存储示意图如图12.6所示。
;11.1.3 指针数组 ;;;;指向结构体的指针;定义一个结构体指针后,需要将该指针与一个结构体变量的地址绑定,例如,如下语句声明并初始化了一个指向结构体的指针p,其操作示意图如图11.7所示。
;12.2.1指向结???体的指针——结构体指针 ;C/C++语言提供了专门运算符“-”(减号后紧跟大于号),通过指针访问结构体成员的一般形式如下:;12.2.1指向结构体的指针——结构体指针 ;;;;;;解决任务12.2的程序;解决任务12.2的程序;【任务12.3】进制转换;;;;;;;12.3.1 申请和释放存储空间;12.3.1 申请和释放存储空间;12.3.1 申请和释放存储空间;12.3.1 申请和释放存储空间;12.3.2 指针和链表 ;12.3.2 指针和链表 ;显然,单链表中每个结点的存储地址存放在其前驱结点(即前一个结点)的next域中,而第一个结点无前驱,所以设头指针指向第一个结点(称为开始结点);同时,由于最后一个结点无后继结点,故最后一个结点(称为终端结点)的指针域为空,即NULL(图示中用“∧”表示),也称尾标志。为了方便运算,通常在单链表的开始结点之前附设一个类型相同的结点,称为头结点。含有4个数据a1、a2、a3和a4的单链表如图12.12所示。。 ;12.3.2 指针和链表 ;12.3.2 指针和链表 ;需要强调的是,工作指针p后移不能写作p++,因为
链表不是顺序存储,p++后指针p不一定指向原结点
p的后继结点,如图12.14所示。 ;12.3.2 指针和链表 ;12.3.2 指针和链表 ; 解决任务12.3的程序 ; 解决任务12.3的程序 ; 解决任务12.3的程序 ;12.4 程序设计实例
您可能关注的文档
- 祖国心脏-北京.ppt
- 福建省尤溪县隆兴矿业科技有限公司灭火救援预案.ppt
- 科学五下第四单元导学案备课.doc
- 科学复习课件7.ppt
- 科学实验课计划.doc
- 科学是……教案.docx
- 科学第一单元练习题.doc
- 科学八年级上册2.5课时.pptx
- 科学社会主义课件ppt.ppt
- 科技创新管理办法(2013新版终稿).doc
- 《GB/T 27664.2-2026无损检测仪器 超声检测设备的性能与检验 第2部分:探头》.pdf
- 中国国家标准 GB/T 27664.2-2026无损检测仪器 超声检测设备的性能与检验 第2部分:探头.pdf
- 中国国家标准 GB/T 6115.1-2026电力系统用串联电容器 第1部分:总则.pdf
- 《GB/T 6115.1-2026电力系统用串联电容器 第1部分:总则》.pdf
- GB/T 6115.1-2026电力系统用串联电容器 第1部分:总则.pdf
- 餐饮门店银发经济适配的标杆案例(优秀老年助餐经验)学习流程试题库及答案.doc
- 施工合同解除协议书.docx
- 外墙喷漆施工协议书.docx
- 化工厂施工协议书.docx
- 人行道安全施工协议书.docx
最近下载
- 人教版三年级数学下册《口算除法》.ppt VIP
- 中华民族共同体概论课件专家版3第三讲 文明初现与中华民族起源(史前时期).pptx VIP
- 西南财经大学专题研究生考试参考书目.pdf VIP
- 中华民族共同体概论课件第十二讲民族危亡与中华民族意识觉醒(1840—1919)2025年版.pptx VIP
- 金属地下矿山安全教育培训课件.ppt VIP
- 第二学期八年级数学备课组工作计划.docx VIP
- 妇科护理宫腔镜进修总结.pptx
- 中华民族共同体概论大讲堂之第十二讲民族危亡与民族意识觉醒(1840—1919).pptx VIP
- 2025年度销售工作总结与2026战略规划.pptx VIP
- 《横县鱼生全链条管理规范 第1部分:养殖》.docx VIP
原创力文档

文档评论(0)