第8章 的指针.ppt

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 的指针

本章教学内容 变量的地址和指针变量的概念 指针变量的定义和引用 指针变量作为函数参数 指针和一维数组 指针和字符串 指向多维数组的指针和指针变量* 函数的指针和指向函数的指针变量* 指针数组 main函数中的参数* **通讯录实例的部分程序 教学目标、重点和难点 教学目标 理解指针的概念 掌握指针变量的定义、赋值以及*运算符、运算符的使用方法 理解指针和数组的关系,掌握用指针引用数组、字符串的方法 了解指向指针的指针变量 教学重点 指针的概念;指针与变量的关系;使用指针引用数组和字符串 教学难点 用指针间接存取数据;指针的移动;指向指针的指针变量的概念 关于指针 指针是C语言的一个重要特色; 正确而灵活地运用指针可以: 有效表示复杂的数据结构; 能动态分配内存; 方便地使用字符串; 有效而方便地使用数组; 在调用函数时能获得1个以上的结果; 能直接处理内存单元的地址 可以使程序简洁、紧凑、高效 【例6.7】有10个元素的数组,完成以 下功能: 多维数组的访问 用指针变量q指向数组元素a[i][j] 2000 2002 2004 2006 2008 2010 2012 2014 2016 2018 2020 2022 2024 2026 1 3 5 7 9 11 13 15 17 19 21 23 a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3] a[2][0] a[2][1] a[2][2] a[2][3] 2000 q =*q =*(q+2) =*(q+4) =*(q+6) =*(q+8) =*(q+10) 用指针变量p指向一个一维数组,通过*p指向数组元素a[i][j] p[0] p[1] p[2] p =*(*(p+0)+0) =*(*(p+0)+2) =*(*(p+1)+0) =*(*(p+1)+2) =*(*(p+2)+0) =*(*(p+2)+2) 2000 2002 2004 2006 2008 2010 2012 2014 2016 2018 2020 2022 2024 2026 1 3 5 7 9 11 13 15 17 19 21 23 a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3] a[2][0] a[2][1] a[2][2] a[2][3] =*(*(p+0)+0) =*(*(p+0)+2) =*(*(p+1)+0) =*(*(p+1)+2) =*(*(p+2)+0) =*(*(p+2)+2) 指针变量p与多维数组a的关系: =*(*(a+0)+0) =*(*(a+0)+2) =*(*(a+1)+0) =*(*(a+1)+2) =*(*(a+2)+0) =*(*(a+2)+2) p[0] p[1] p[2] p p=a a[0]=*(a+0)=2000 a[1]=*(a+1)=2008 a[2]=*(a+2)=2016 p是指向一维数组的指针变量 a[0] a[1] a[2] a 多维数组的指针 用指针变量q指向数组元素a[i][j] int a[3][4],*q; q= a[0]; 2000 2002 2004 2006 2008 2010 2012 2014 2016 2018 2020 2022 2024 2026 1 3 5 7 9 11 13 15 17 19 21 23 a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3] a[2][0] a[2][1] a[2][2] a[2][3] 2000 q 用指向一维数组的指针变量p int a[3][4],(*p)[4]; p=a; a[0] a[1] a[2] p a 1 3 5 7 9 11 13 15 17 19 21 23 p p+1 p+2 q q+1 q+2 q+3 例题:有一个班,3个学生,各学4门课,计算总平均分数,以及输出第n个学生的成绩。 void average(float *p,int n) { float *p_end; float sum=0,aver; p_end=p+n-1; for(;p=p_end;p++) sum=sum+(*p); aver=sum/n; printf(average=%5.2f\n,aver); } void search(float (*p)[4],int n) { int i; printf(the scores of No.%d are:\n,n); for(i=0;i4;i++) pri

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档