收藏 分销(赏)

参数传递.ppt

上传人:仙人****88 文档编号:14034445 上传时间:2026-06-10 格式:PPT 页数:22 大小:110KB 下载积分:10 金币
下载 相关
参数传递.ppt_第1页
第1页 / 共22页
参数传递.ppt_第2页
第2页 / 共22页


点击查看更多>>
资源描述
,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,函数的参数传递方式,函数的定义,函数是面向对象程序设计中的基本抽象单元,是对功能的抽象,函数定义的语法形式,类型标识符 函数名(形式参数表),语句序列,函数的定义与使用,若无参数,写,void,是被初始化的内部变量,寿命和可见性仅限于函数内部,若无返回值,写,void,2,函数的定义,形式参数表,name,1,name,2,.,name,n,函数的返回值,由,return,语句,给出,例如:,return 0,无返回值的函数(,void,类型,),不必写,return,语句。,函数的定义与使用,3,函数的调用,调用前先说明函数原型:,在调用函数的说明部分,或程序文件开头所有函数之前,按如下形式说明:,类型标识符 被调用函数名(含类型说明的形参表),;,调用形式,函数名(实参列表),函数的定义与使用,4,函数调用,当一个函数定义有形参时,在进行函数调用时,必须提供与形参个数、类型相同的实参。,在,C+,中,有两种参数传递机制将实参的值传递给形参:,传值调用,(包含传变量地址值的,传址调用,)和,引用调用,(,C,语言中没有,)。,1 函数的值和类型,函数调用格式:,函数名(实参表),函数调用是一种表达式,括号可理解为函数调用运算符。函数调用表达式的值是函数的返回值,其类型是函数类型。,5,函数的返回值是在被调用函数中通过返回语句来实现的。,返回语句的两种格式:,return,表达式;,return;,无返回值的函数中可以有,return,语句,也可以没有,return,语句。,6,函数的参数传递机制,值调用,在函数被调用时才分配形参的存储单元。,实参可以是常量、变量或表达式。,实参类型必须与形参相符。,传递时是传递参数值,即单向传递。,7,函数的参数传递机制,值调用举例,X,N,被调函数:,主调函数:,3,2.5,A,D=power(A,3),2.5,3,double power(double X,int,N),8,在这种机制中,,形参用变量,实参用常量、变量值或表达式值,。调用时,实参的值被,拷贝,到由相应形参名字所标识的对象中。在函数内部对形参的访问或更新都是是对这个,副本,的访问或更新。,实参本身的值在调用前后和调用过程中都不发生变化。,9,int,Multiply(,int,a),a*=2;,cout,“a=“a,endl,;,return a;,#,include,void main(),int,b=10;,Multiply(b);,cout,“b=“b;,运行结果:,a=20,b=10,10,例,3.6,输入两 整数,交换后输出,#include,void,Swap(int,a,int,b);,int,main(),int,x(5),y(10);,cout,x=x y=y,endl,;,Swap,(x,y);,cout,x=x y=y,endl,;,return 0;,函数的定义与使用,11,void,Swap,(int,a,int,b),int,t;,t=a;,a=b;,b=t;,运行结果,:,x=5 y=10,x=5 y=10,12,使用传址调用方式时,,形参用指针,实参用地址值,。调用时,将实参的地址值赋给对应的形参指针,使形参指针指向实参变量;因此,在被调用函数中可以,通过改变形参指针所指向的变量值来间接改变实参值,。,#,include,void swap(,int,*x,int,*y,),int,temp;,temp =*x;,*x=*y;,*y=temp;,函数的参数传递机制,传址调用,13,cout,“x=“*x“,”,cout,“y=“*y,endl,;,void main(_),int,a(5),b(9);,swap(,&,a,&,b);,cout,“a=“a“,”,cout,“b=“b,endl,;,运行结果:,x=9,y=5,a=9,b=5,14,函数的参数传递,引用调用,引用,(&),标识符的别名,例如,:,int,i,j;,int,&,ri,=i;,/,建立一个,int,型的引用,ri,即,ri,的,/,地址就等于,i,的地址,j=10;,ri,=j;/,相当,于,i=j;,引用作为形参,例如,:,void,Swap(int,&a,int,&b).,函数的定义与使用,15,采用引用传递(引用调用)机制,可以在被调用函数中通过引用直接改变调用函数的实参值,它比传址调用更方便、更直接。,16,例,3.7,输入两 整数,交换后输出,#include,void,Swap(int,&,a,int,&,b);,int,main(),int,x(5),y(10);,cout,x=x y=y,endl,;,Swap,(x,y);,cout,x=x y=y,endl,;,return 0;,函数的定义与使用,17,void,Swap,(int,&,a,int,&,b),int,t;,t=a;,a=b;,b=t;,运行结果,:,x=,5,y=,10,x=,10,y=,5,18,Swap(x,y);,void swap(,int,&a,int,&b),第一步:调用:将,x,的地址给,a,的地址,,y,的地址给,b,的地址。,结果:,a,和,x,有相同的地址,,b,和,y,有相同的地址,a=5 b=10,x,y,5,10,a,b,19,第二步:,a,和,b,交换内容:,t=a;,a=b;,b=t;,结果:,a=10,b=5,x,y,10,5,a,b,20,Swap(x,y);,void swap(,int,&a,int,&b),第三步:返回:由于,a,地址单元的内容已经变成10,,x,和,a,有相同的地址,,x,的值也变成10。,同样:,y,也变成5。,完成了交换的功能。,实际上,在这种情况下,,也没有参数回传的动作。,在,swap,中,,x、y,的值已经更换。,x,y,10,5,a,b,21,传址,调用,定义函数,void swap(,int,*a,int,*b),调用函数,swap(,引用调用,定义函数,void swap(,int,&a,int,&b),调用函数,swap(x,y);,变量定义,int,x=5,y=10;,22,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服