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

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

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

最本质的理解方法是,从内存的角度,给某个变量赋值无外乎在某个地方内存中写值,因此你需要关注目标内存是否被改变。比如,给指针形参指向的内存写值时,写的就是实参指向的内存,这就是传址的本质。
意法半导体(中国)投资有限公司
2023-06-12 广告
STM32F103C8T6是一款基于ARM Cortex-M3内核的微控制器,具有以下基本参数:1. 工作频率:72MHz2. 外部时钟:最高可达120MHz3. 存储器容量:64K bytes4. 数据总线宽度:32位5. 输入/输出端口... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
npkillbady2
2012-12-25 · TA获得超过176个赞
知道答主
回答量:32
采纳率:0%
帮助的人:36.5万
展开全部
举个简单例子来说明:
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

提交
取消

辅 助

模 式