5_指针3函数.ppt

5_指针3函数.ppt

ID:48407243

大小:450.50 KB

页数:29页

时间:2020-01-19

5_指针3函数.ppt_第1页
5_指针3函数.ppt_第2页
5_指针3函数.ppt_第3页
5_指针3函数.ppt_第4页
5_指针3函数.ppt_第5页
资源描述:

《5_指针3函数.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第5章指针(3)指针与函数指针作为函数参数指针变量作为函数参数——地址传递特点:共享内存,“双向”传递普通变量作为函数参数——值传递特点:单向”传递swap(intx,inty){inttemp;temp=x;x=y;y=temp;}main(){inta,b;scanf("%d,%d",&a,&b);if(a

2、为函数参数——值传递特点:单向”传递swap(intx,inty){inttemp;temp=x;x=y;y=temp;}main(){inta,b;scanf("%d,%d",&a,&b);if(a

3、inter_2;scanf("%d,%d",&a,&b);pointer_1=&a;pointer_2=&b;if(a

4、intp;p=*p1;*p1=*p2;*p2=p;}main(){inta,b;int*pointer_1,*pointer_2;scanf("%d,%d",&a,&b);pointer_1=&a;pointer_2=&b;printf("%d,%d",a,b);}…...20002008200A200220042006200C200E2010...59整型变量a整型变量b(main)指针pointer_1指针pointer_22000200259例将数从大到小输出运行结果:9,5地址传递传地址调用和传值调用传(地)址调用:将被调函数的形式参数说明

5、成指针形式,在调用函数中,将实参的地址传递给形参,在被调函数内部通过间接寻址的方式修改调用函数实参值。属于双向参数传递。传值调用:被调函数的形式参数是普通类型,在调用函数中,将实参的值拷贝给形参.因为实参和形参占用各自的内存单元(在各自的栈空间中),互不干扰,被调函数中对形参值的改变不会改变实参的值。属于单向数据传递方式。被调函数swap(int*p1,int*p2)调用函数swap(pointer_1,pointer_2);被调函数swap(intx,inty)调用函数swap(a,b);为什么使用指针做函数参数?用指针作函数参数,可以返回多个值减少参数

6、传递过程中的数据复制量。用指针作函数参数,通过将数据区的地址传递给函数,使函数能够改动该地址处的数据。二维数组的指针作函数参数用指向变量的指针变量用指向一维数组的指针变量用二维数组名实参形参数组名intx[][4]行指针变量int(*q)[4]数组名intx[][4]行指针变量int(*q)[4]数组名a数组名a行指针变量p1行指针变量p1若inta[3][4];int(*p1)[4]=a;int*p2=a[0];列指针变量p2列指针变量int*q例3个学生各学4门课,计算总平均分,并输出第n个学生成绩main(){voidaverage(float*p,

7、intn);voidsearch(float(*p)[4],intn);floatscore[3][4]={{65,67,79,60},{80,87,90,81},{90,99,100,98}};average(*score,12);search(score,2);}voidaverage(float*p,intn){float*p_end,sum=0,aver;p_end=p+n-1;for(;p<=p_end;p++)sum=sum+(*p);aver=sum/n;printf("average=%5.2f",aver);}voidsearch(f

8、loat(*p)[4],intn){inti;printf("No

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。