简述什么是形参和实参,参数传递的方式有哪些?

 我来答
heyihan1988
推荐于2018-08-15 · TA获得超过245个赞
知道小有建树答主
回答量:213
采纳率:100%
帮助的人:178万
展开全部
用数学中的函数对比,如f(x) = 2x + 10
f(x)是返回值,x是形参,当你给x赋值为5时,实参是5,当赋值为10时,实参是10
因此,概括的说实参是某次函数调用时给形参的赋值

参数传递方式本质上只有一种,即传值。
传址与传引用都是传值的概念转换,比如
void calc(int * ptr);
在调用时,表面上是传址,但对ptr这个形参来说,它的值初始化为了实参,因此是传值。

最本质的理解方法是,从内存的角度,给某个变量赋值无外乎在某个地方内存中写值,因此你需要关注目标内存是否被改变。比如,给指针形参指向的内存写值时,写的就是实参指向的内存,这就是传址的本质。
npkillbady2
2012-12-25 · TA获得超过176个赞
知道答主
回答量:32
采纳率:0%
帮助的人:37万
展开全部
举个简单例子来说明:
int func(int a , int b) {return a + b ;}

这里a和b是形式参数,这个时候a和b的值是未知的。
等调用的时候如: fun(5,6) ,这里 a = 5 , b =6 ,这里的5和6对于函数func来说就是实参,代表实实在在的值,而不是被一个名称指代,那么这个函数就会变成:
fun(5,6) {return 5+6;}
函数里面a的值都被5代替,b的值都被6代替。
由于是形式参数,a的值可以是任意的整形值,同时b的值也可以是任意的整型值(这里面有一些数的界的问题这里不做考虑)。因此你写出一个func函数,你就可以对所有的二项加法应用:
5+6 func(5,6)
11+22 func(11,22)
-13 + 43 func(-13,43)
说了这些你应该也能大体明白实参和形参的区别了。
至于参数传递的方式,在C++里总的来分的话就是分为改变实参值的传递(指针、引用)和不改变实参值的传递(传值)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式