- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2015内蒙古职业学校C语言程序设计课件:第7章 指针02.ppt
7.3 指针与数组 指向数组的指针变量称为数组指针变量。在讨论数组指针变量的说明和使用之前,先明确几个关系。 一个数组是由连续的一块内存单元组成的,数组名就是这块连续内存单元的首地址。一个数组也是由各个数组元素(下标变量)组成的,每个数组元素按其类型不同占有几个连续的内存单元。一个数组元素的首地址也是指它所占有的几个内存单元的首地址。一个指针变量既可以指向一个数组,也可以指向一个数组元素,可把数组名或第一个元素的地址赋予它。如要使指针变量指向第i个元素可以把第i个元素的首地址赋予它或把数组名加i赋予它。 设有实型数组a,指向a的指针变量为pa,从图7-3中可以看出有以下关系: pa,a,a[0]均指向同一单元,它们是数组a的首地址,也是0 号元素a[0]的首地址。pa+1,a+1,a[1]均指向1号元素a[1]。类推可知pa+i,a+i,a[i]指向i号元素a[i]。应该说明的是pa是变量,而a,a[i]都是常量,可以使用pa++,但是a++是错误的。 7.3.1 一维数组的指针表示方法 数组指针变量说明的一般形式为: 类型说明符 * 指针变量名 其中类型说明符表示所指数组的类型。 从一般形式可以看出指向数组的指针变量和指向普通变量的指针变量的说明是相同的。 引入指针变量后,就可以用两种方法来访问数组元素了。 第一种方法为下标法,即用a[i]形式访问数组元素。 在第5章中介绍数组时都是采用这种方法。 第二种方法为指针法,即采用*(pa+i)形式,用间接访问的方法来访问数组元素。 7.3.1 一维数组的指针表示方法 【例7.7】分别用下标法、地址法和指针访问一维数组元素。 /* 源文件名:Li7_7.c */ #include stdio.h void main() { int a[6]={1,3,5,7,9,11},i,*pa; /*定义一个整型数组并初始化 */ for(i=0;i6;i++) /*循环语句*/ printf(a[%d]=%d\t,i,a[i]); /*用下标法访问一维数组元素 */ printf(\n); /*输出换行*/ for(i=0;i6;i++) printf(a[%d]=%d\t,i,*(a+i)); /*用地址法访问一维数组元素 */ printf(\n); for(i=0,pa=a;paa+6;pa++) printf(a[%d]=%d\t,i++,*pa); /*用指针访问一维数组元素 */ printf(\n); } 程序运行后,屏幕显示: a[0]=1 a[1]=3 a[2]=5 a[3]=7 a[4]=9 a[5]=11 a[0]=1 a[1]=3 a[2]=5 a[3]=7 a[4]=9 a[5]=11 a[0]=1 a[1]=3 a[2]=5 a[3]=7 a[4]=9 a[5]=11 7.3.2 数组名和数组指针变量作函数参数 在前面曾经介绍过用数组名作函数的实参和形参的问题。在学习指针变量之后就更容易理解这个问题了。数组名就是数组的首地址,实参向形参传送数组名实际上就是传送数组的地址,形参得到该地址后也指向同一数组。这就好像同一件物品有两个彼此不同的名称一样。同样,指针变量的值也是地址,数组指针变量的值即为数组的首地址,当然也可作为函数的参数使用。 【例7.8】使用数组指针变量作函数参数,计算数组元素的平均值。 /* 源文件名:Li7_8.cpp */ #include stdio.h float aver(float *pa); void main() { float sco[5],av,*sp; int i; sp=sco; printf(\n请输入5个成绩:); for(i=0;i5;i++) scanf(%f,sco[i]); av=aver(sp); printf(平均成绩是:%5.2f\n,av); } float aver(float *pa) { int i; float av,s=0; for(i=0;i5;i++) s=s+*pa++; av=s/5; return av; } 程序运行后,屏幕显示: 请输入5个成绩:65 70 75 80 85 平均成绩是:75.00 7.3.3 二维数组的指针表示方法 为了说明问题, 定义以下二维数组: int a[3][4]={{0,1,2,3}, {4,5,6,7}, {8,9,10,11}}; a为二维数组名, 此数组有3行4列, 共12个元素。但也可这样来理解, 数组a由三个元素组成: a[0], a[1], a[2]。而它们
您可能关注的文档
最近下载
- 2025年AI在企业人力资源中的应用白皮书2.0 -智、效双驱: 赋新质、创新生.pdf VIP
- CRL-H户用超声热量表-汇中仪表.pdf VIP
- 第二语言习得02 相关领域与研究传统 PPT课件.pptx VIP
- 人工智能的利与弊必威体育精装版完整版本.pptx VIP
- CRTAS-2024-05 互联网租赁自行车运营服务规范.docx
- 姑溪河当涂闸枢纽工程环境影响报告书.pdf VIP
- 项目管理人员安全培训课件.pptx VIP
- 【2024版】普通话水平测试用朗读作品 50 篇带拼音版.pdf VIP
- 第二语言习得03 早期研究 PPT课件.pptx VIP
- 汽车行业质量管理体系IATF16949认证审核及评审清单(内审员、外审员、过程审核员如何开展审核?).pdf VIP
有哪些信誉好的足球投注网站
文档评论(0)