- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《程序设计》多媒体教程
第十讲
第四章 数组、字符串、指针及其应用
4.5.3 数组指针
※ 数组指针的定义
若有
short (*pe)[N];
表示定义了一个数组指针pe,是一个用来指向含N个元素的一维数组的指针。
pe N个元素的一维数组
...
※ 数组指针的行指针作用和特点
需要指出的是,数组指针是一个指针。
如果定义:
short e[3][4], (*pe)[4];
数组指针pe可指向元素的个数与二维数组e的列数(每一行中元素的个数)相等,则pe可
作为e的行指针。因此,又可将数组指针称为“指向二维数组一整行的指针”(p150/p141) 。
如果有以下语句:
pe = e; 或者 pe = e[0]; 或者 pe = *(e+0);
表示数组指针pe指向二维数组e的第0行,则可用pe[j][k]表示e的元素e[j][k] 。
pe作为指针,可以执行加1或者减1操作。
如果执行:
pe++; 或者 pe = e[1];
表示pe指向e[1](第1行),则pe[j][k]的作用与e[j+1][k]相同。
如果再执行:
pe++; 或者 pe = e[2];
表示pe指向e[2](第2行),则pe[j][k]的作用与e[j+2][k]相同。
e
e
pe 2002200220062006
pe=e; 2000 e[0][0]e[0][0] e[0][1]e[0][1] e[0][2]e[0][2] e[0][3]e[0][3]
pe 200A200A 200C200C 200E200E
pe++; 2008 e[1][0]e[1][0] e[1][1]e[1][1] e[1][2]e[1][2] e[1][3]e[1][3]
pe 2012201220162016
pe++; 2010 e[2][0]e[2][0] e[2][1]e[2][1] e[2][2]e[2][2] e[2][3]e[2][3]
4.6 二级指针
※ 二级指针的定义
如果有以下语句
short **pp;
表示定义了一个二级指针pp,将指向short类型的指针,因此可将其称为指针的指针。
二级指针二级指针pppp shortshort类型的指针类型的指针
※ 二级指针指向目标
二级指针可以通过各种方式指向目标。例如,定义:
short **pp1, **pp2, **pp3, **pp4, **pp5,*p2, *p3, *p4[3], x, y[10];
p2 = x;
p3 = y; 或者 p3 = y[0];
⊙ 赋空值
pp1 = NULL;
⊙ 指向指针
pp2 = p2;
pp3 = p3;
10 - 1 《程序设计12》
表示pp2和pp3分别指向short类型的指针p2和p3。并且由指针p2指向变量x ,p3指向一
维数组y 。
原创力文档


文档评论(0)