网站大量收购独家精品文档,联系QQ:2885784924

《C语言程序设计》课件——42指针在二维数组中的应用举例.pptVIP

《C语言程序设计》课件——42指针在二维数组中的应用举例.ppt

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

指针在二维数组中的应用举例9.6指针在二维数组中的应用举例

【例9.6】利用指针变量完成数组元素的输出。

main()

{inta[3][5]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},*p;

for(p=a[0];pa[0]+15;p++)

printf(“%d”,*p);

printf(“\n”);

}

运行结果是:

123456789101112131415程序中定义行指针变量的形式为:int(*p)[5]【例9.7】利用指向一维数组的行指针变量输出数组元素的值。

main()

{inta[3][5]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

inti,j,(*p)[5];

p=a;

for(i=0;i3;i++)

for(j=0;j5;j++)printf(%d,*(*(p+i)+j));

printf(\n);

}

运行情况如下:

123456789101112131415行指针变量的形式为:int(*p)[5]行指针变量的形式为:int(*p)[5]行指针变量的形式为:int(*p)[5]行指针变量的形式为:int(*p)[5]行指针变量的形式为:int(*p)[5]程序中定义行指针变量的形式为:int(*p)[5]程序中定义行指针变量的形式为:int(*p)[5]程序中定义行指针变量的形式为:int(*p)[5]程序中定义行指针变量的形式为:int(*p)[5]程序中定义行指针变量的形式为:int(*p)[5]程序中定义行指针变量的形式为:

int(*p)[5]

【例9.8】数组行地址和列地址的输出。

main()

{shorta[3][5]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

printf(1:%ld,%ld,%ld\n,a,a+1,a+2);

printf(2:%ld,%ld,%ld,%ld\n,*a,*a+1,*a+2,*a+3);

printf(3:%ld,%ld,%ld,%ld\n,*(a+1),*(a+1)+1,*(a+1)+2,*(a+1)+3);

printf(4:%ld,%ld,%ld,%ld\n,*(a+2),*(a+2)+1,*(a+2)+2,*(a+2)+3);

printf(5:%ld,%ld,%ld\n,a[0],a[1],a[2]);

printf(6:%ld,%ld,%ld,%ld\n,a[0][0],a[0][1],a[0][2],a[0][3]);

printf(7:%ld,%ld,%ld,%ld\n,a[0],a[0]+1,a[0]+2,a[0]+3);

printf(8:%ld,%ld,%ld,\n,*a,*(a+1),*(a+2));

printf(9:%d,%d,%d,\n,*(a[1]+2),*(*(a+1)+2),a[1][2]);

}

运行结果如下:

1:404,414,424 (第1,2,3行的行地址)

2:404,406,408,410 (第0行4个元素的地址)

3:414,416,418,420 (第1行4个元素的地址)

4:424,426,428,430 (第2行4个元素的地址)

5:404,414,424 (第0,1,2行的行地址)

6:404,406,408,410 (第0行4个元素的地址)

7:404,406,408,410 (第0行4个元素的地址)

8:404,414,424(第0,1,2行中第0列元素地址,即a[0],a[1],a[2])

9:8,8,8 (第1行第2列元素的值)程序中定义行指针变量的形式为:int(*p)[5]程序中定义行指针变量的形式为:int(*p)[5](1)开始把列地址a[0]赋给p。p是指向整型数据的指针变量,p+1是使p的地址值增加两个字节,使p移动到下一个元素处。因此循环15次后,输出全部元素的值。

(2)如果将p=a[0]改写成p=a,程序就可能出错。因为尽管a[0]和a的值是相同的,但属性不同,a指向行,a[0]指向列,二者指向的对象不同。由于p是指向整型数据的指针变量,所以它只能接受a[0],而不能接受a。但写成下面的形式是允许的:

p=*a;

p=*(a+0);

p=a[0][0];

(3)如果一定想将a赋给p,必须先进行强制类型转换

您可能关注的文档

文档评论(0)

青柠职教 + 关注
实名认证
服务提供商

从业10年,专注职业教育专业建设,实训室建设等。

1亿VIP精品文档

相关文档