指针作为函数参数(一)

指针作为函数参数(一)

ID:5402891

大小:219.00 KB

页数:9页

时间:2017-11-10

指针作为函数参数(一)_第1页
指针作为函数参数(一)_第2页
指针作为函数参数(一)_第3页
指针作为函数参数(一)_第4页
指针作为函数参数(一)_第5页
资源描述:

《指针作为函数参数(一)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、指针作为函数参数(一)小组成员:邓曦、高问、周亚娟王家月、孙秋霞函数参数的传递1.值传递实参的功能:将调用函数中的变量或常量的数值单向复制给被调函数中的形参。形参的功能:接收并保存实参复制过来的数值。实参:表达式、变量、常量、函数值(传递值)形参:变量2.地址传递:指针作为函数参数形参:指针变量实参:指针变量或变量地址(传递地址)函数参数传递的特点1)实参由调用函数提供2)形参由被调函数提供Floataverage(inta,intb)Voidmain(){Intx,y,m;Scanf(“%d%d”,&x,&y);m=max(x,y);Printf(“

2、max=%d”,m);}实参的前面不能有类型符,形参需要先分配存储单元,再接受数据,所以前面要有类型符单向传递例6.7编写交换两个变量值的函数swap()。voidswap(intx,inty)//x和y是形参{intt;t=x;x=y;y=t;printf("x=%d,y=%d",x,y);}5…...…2ab52Swap()xy5t25运行结果如下:x=2,y=5a=5,b=2#includevoidswap(intx,inty);//x和y是形参voidmain(){inta=5,b=2;swap(a,b);//a和b是

3、实参printf("a=%d,b=%d",a,b);}voidfunc(inta){a=5;}voidmain(){intb=0;func(b);printf("b=%d",b);}传值调用运行结果:b=0func(inta){a=5;returna;}voidmain(){intb=0,c;c=func(b);printf("c=%d",c);}传值调用运行结果:c=5voidswap(intx,inty){inttemp;temp=x;x=y;y=temp;}voidmain(){inta,b;scanf("%d%d",&a,&b);i

4、f(a

5、n%d,%d",a,b);}…...20002008200A200220042006200C200E2010...59整型变量a整型变量b(main)指针p_1指针p_220002002(swap)指针p1指针p2整型p5920002002COPY5【例】将数从大到小输出a=9;b=5voidswap(int*p1,int*p2){int*p;p=p1;p1=p2;p2=p;}voidmain(){inta,b;int*p_1,*p_2;scanf("%d,%d",&a,&b);p_1=&a;p_2=&b;if(a

6、printf("%d,%d",*p_1,*p_2);}运行结果:5,9…...20002008200A200220042006200C200E2010...59整型a整型b(main)p_1p_22000200220002002COPY(swap)指针p1指针p2指针p****2000地址传递20002002【例】将数从大到小输出小结:参数传递方式:传值调用和传址调用传值调用:将参数值传递给形参。实参和形参占用各自的内存单元,互不干扰,函数中对形参值得改变不会改变实参的值,属于单向数据传递方式。传址调用:将实参的地址传递给形参。形参和实参占用同样的内存

7、单元,对形参值得改变也会改变实参的值,属于双向数据传递方式。

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

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

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