C语言程序设计第45讲-指向一维数组的指针变量课件.ppt

上传人(卖家):三亚风情 文档编号:2921373 上传时间:2022-06-11 格式:PPT 页数:15 大小:323.50KB
下载 相关 举报
C语言程序设计第45讲-指向一维数组的指针变量课件.ppt_第1页
第1页 / 共15页
C语言程序设计第45讲-指向一维数组的指针变量课件.ppt_第2页
第2页 / 共15页
C语言程序设计第45讲-指向一维数组的指针变量课件.ppt_第3页
第3页 / 共15页
C语言程序设计第45讲-指向一维数组的指针变量课件.ppt_第4页
第4页 / 共15页
C语言程序设计第45讲-指向一维数组的指针变量课件.ppt_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、学习目标(1)掌握指向一维数组的指针的用法。(2)掌握指向数组的指针作为函数参数传递的用法。C Programming Language指针与数组指针与数组l指针与数组的关系十分密切,数组名本身就是一个常量指针。当定义数组时,其首地址就已确定不再改变。l通过使用指针变量来指向数组中的不同元素,可使程序效率更高,执行速度更快。例如,对于数组arr10,数组名arr等效于地址&arr0。因此,可以将数组名arr看做一个指针,它永远指向arr0。C Programming Language指向一维数组的指针变量 一个数组存储在一块连续内存单元中;数组名就是这块连续内存单元的首地址; 第(i+1)个数

2、组元素的地址可表示为&datai或(data+i)。 可以通过以下方式为指向数组的指针赋值: int *pa,a10; pa=&a0; /*或者 pa=a;*/ 一个指针变量可以指向一个数组元素 int *ptr,data10; ptr=data+3;/*或者ptr=&data3*/C Programming Languagept+n与a+n表示数组元素an的地址,即&an。 若指针变量pt已指向数组中的一个元素,则pt+1指向同一数组中的下一元素。 pt+1所代表的地址值是pt+1d,d是每个数组元素所占的字节数。假设pt指向了一维数组a,那么C语言规定指针对数组的表示方法有如下几种。数组a

3、pt+2a+npt+na0pta1a2anapt+1a+1a+2C Programming Language*(pt+n)和*(a+n)表示pt+n或a+n指向的数组元素值,即等效于an。 在编译时,对数组元素ai就是处理成*(a+i)。 在C语言中是“变址运算符”,即将ai按a+i计算出地址,然后找出该地址单元的值。假设pt指向了一维数组a,那么C语言规定指针对数组的表示方法有如下几种。数组a*(pt+2)*(a+n)*(pt+n)a0*(pt+0)a1a2an*(a+0)*(pt+1)*(a+1)*(a+2)C Programming Language指向数组的指针变量也可用数组的下标形式

4、表示为ptn,其效果相当于*(pt+n)。 引用一个数组元素的方法:下标法:即ai的形式。地址法:*(a+i)。其中a是数组名。指针法:即*(pt+i)或pti。其中pt是指向数组a的指针变量。假设pt指向了一维数组a,那么C语言规定指针对数组的表示方法有如下几种。C Programming Language指针变量可以实现本身的值的改变,这一点与数组名不同。如p+是合法的;而a+是错误的。指针变量可以指到数组以后的内存单元,系统并不认为非法,因此使用指针变量指向数组元素时,要特别注意指针变量所指向的位置。注意事项C Programming Language#include main() in

5、t *p,i,a10; p=a; for(i=0;i10;i+) *p+=i; /* 等价于*p=i;p+; */ for(i=0;i10;i+) printf(%6d,*p+);程序运行结果: -222851 -242282-200 14917 21596 23619【例1】为数组a赋值后输出数组a的所有元素值。C Programming Languagemain() int *p,i,a10; p=a; for(i=0;i10;i+) *p+=i; p=a; /*在输出前使p重新指向数组a的首地址*/ for(i=0;i10;i+) printf(%6d,*p+);程序运行结果:01234

6、56789改正后的程序C Programming Language *p+等价于*(p+)。若p当前指向a数组中的第i个元素,则*(+p)相当于a+i,*(p-)相当于ai-;*(-p)相当于a-i。 *(p+)与*(+p)作用不同。若p的初值为a,则*(p+)等价a0,*(+p)等价a1。 (*p)+表示p所指向的元素值加1。指针变量与自增自减运算符同时出现时的用法C Programming Language数组指针作函数参数 数组名就是数组的首地址,实参向形参传送数组名实际上就是传送数组的地址,形参得到该地址后也指向同一数组。 指针变量的值也是地址,也可以作为函数的参数进行传递。C Pro

7、gramming Language#include main()int i,a10,*pt=a,max; printf(please input array a:n); for(i=0;i10;i+) scanf(%d,&ai); max=sub_max(pt,10); printf(max=%dn,max);程序运行结果:please input array a:2 5 1 7 6 8 4 3 9 0max=9【例2】求一维数组中的最大值,要求求最大值的功能通过函数实现。int sub_max(int b,int n)int temp,i; temp=b0; for(i=1;in;i+)if

8、(tempbi) temp=bi; return temp;C Programming Languagemain()int i,a10,*pt=a,max;printf(please input array a:n);for(i=0;i10;i+) scanf(%d,&ai);max=sub_max(pt,10);printf(max=%dn,max);上述程序也可采用指针变量作sub_max函数的形式参数。int sub_max(int *b,int n) int temp,i; temp=b0; /*bi等价于*(b+i)*/ for(i=1;in;i+) if(tempbi) temp=

9、bi; return temp;C Programming Language上述程序的sub_max函数中,数组元素还可以用指针表示。main()int i,a10,*pt=a,max; printf(please input array a:n); for(i=0;i10;i+) scanf(%d,&ai); max=sub_max(pt,10); printf(max=%dn,max);int sub_max(int *b,int n) int temp,i; temp=*b+; /*temp=*b;b+;*/ for(i=1;in;i+) if(temp*b) temp=*b;b+; return temp;小结(1)指针对数组的表示方法。 下标法:即ai的形式。地址法:*(a+i)。其中a是数组名。指针法:即*(pt+i)或pti。其中pt是指向数组a的指针变量。(2)指向数组的指针作为函数参数传递的用法。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(C语言程序设计第45讲-指向一维数组的指针变量课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|