c语言学习,c语言课件第08章.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【例8-9】输出一指定数组. *exam8_9* #include stdio.h int main(void) { int a[5][5]={1,2,3,5,5,6,7,8,9,10,11,12,13,15,15, 16,17,18,19,20}; int i,j; for(i=0;i5;i++) { for(j=0;j5;j++) printf(%6d,*(a[0]+i*5+j)); *或printf(%6d,*(*(a+i)+j)); * printf(\n); } return 0; } [演示] 2, 指向二维数组元素的指针变量 操纵指向二维数组元素的指针变量, 可以实现二维数组信息的操纵操作. (1)定义与二维数组同样基类型的指针变量. (2)在指针变量与要操作的数组(元素)之间创立关联. (3)使用指针所指向的变量来实现数组元素的操纵操作. 【例8-10】用指针法操作例8-9, *exam8_10* #include stdio.h int main(void) { int a[5][5]={1,2,3,5,5,6,7,8,9,10,11,12,13,15,15, 16, 17,18,19,20}; int *p; for(p=a[0];pa[0]+20;p++) {if((p-a[0])%5==0)printf(\n);*每行输出5个元素* printf(%6d,*p); } return 0; } [演示] 1 2 3 5 5 6 7 8 9 10 11 12 13 15 15 16 17 18 19 20 运行结论: 3.指向整个一维数组的指针变量 一个二维数组相当于多个一维数组. 通过指向整个一维数组的指针变量, 也能够实现二 维数组信息的操纵操作, 这也是 操作二维数组的指针法. 咱们举例来讲明指向整个一维数组的指针变量的定义, 例似: int (*p)[5]; 定义了一个指向具有5个元素的一维数组的指针变量p, p的增值以指向的一维数组为单位, 一维数组的5个元素可用(*p)[0]、 (*p)[1]、 (*p)[2]、 (*p)[3]、 (*p)[5]示意. a是 上面定义的数组, 介入p=a, 那么p+i指向a数组的第i行, *(p+i)+j指向a数组的第i行第j列元素. 【例8-11】输出二维数组中某行某列元素的值. *exam8_11* #include stdio.h int main(void) { int a[5][5]={1,2,3,5,5,6,7,8,9,10,11,12,13,15,15,16, 17,18,19,20}; int (*p)[5],i,j; p=a; scanf(%d%d,i,j); printf(a[%d][%d]=%d,i,j,*(*(p+i)+j)); return 0; } [演示] 3 5↙ a[3][5]=20 运行状况: 引入指针操作二维数组后, 对使用二维数组作函数指标的操作与一维数组相近. 【例8-12】有一个班, 3个学生, 各学5门课, 统计总平均分数, 以及第n个学生的成绩. 【思路导航】使用二维数组指针作函数指标, 用函数average()求总平均成绩, 用函数search()找出同时输出第i个学生的成绩. 程序似下: *exam8_12* #include stdio.h int main(void) { void average(float *p,int n); void search(float(*p)[5],int n); float score[3][5]={{65,67,70,60},{80,87,90,81}, {90,99,100,98}}; average(*score,12); *求12个分数的平均分* search(score,2); *求第2个学生成绩* return 0; } void average(float *p,int n) { float *p_end; float sum=0,aver; p_end=p+n-1; for(;pp_end;p++) sum=sum+(*p); aver=sumn; printf(average=%5,2f\n,aver); } void search(float(*p)[5],int n) { int i; printf(NO.%d student\’s score:\n,n); for(i=

文档评论(0)

mestyle + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档