c++中,实参和形参有什么区别?

RT在一个程序中,如何判断它是形参还是实参?最好举一个实际程序做例子说明我是个刚学C++的新手,麻烦讲的通俗些详细些,谢谢了~... RT
在一个程序中,如何判断它是形参还是实参?最好举一个实际程序做例子说明
我是个刚学C++的新手,麻烦讲的通俗些详细些,谢谢了~
展开
 我来答
IT168
2022-11-08 · 百度认证:IT168官方账号,优质数码领域创作者
IT168
IT168是中国最大的个人和企业IT产品选购、互动网站,每日提供最新的IT产品报价、促销行情、手机、平板、笔记本、相机和企业等50个频道提供最专业的产品选购和使用建议。
向TA提问
展开全部
有以下区别:
1、主体不同:实参在调用有参函数时,函数名后面括号中的参数为“实际参数”。形参不是实际存在变量,又称虚拟变量。
2、目的不同:实参可以是常量、变量或表达式,无论实参是何种类型的量,在进行函数调用时,都必须具有确定的值,以便把这些值传送给形参。
需要注意当形参和实参不是指针类型时,在该函数运行时,形参和实参是不同的变量,他们在内存中位于不同的位置,形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,而实参内容不会改变。
无法无天
2023-01-19 · 知道合伙人软件行家
无法无天
知道合伙人软件行家
采纳数:658 获赞数:1756
网络工程师

向TA提问 私信TA
展开全部
  1. 实参和形参被分配的地址不同。可以这样比喻,实参是一间别墅,而形参是另一间别墅。实参里的东西被复制了一份搬到了形参里面,而形参这件别墅里面的东西被扔了或者添加了新的东西是不会对实参这件别墅造成影响的。

  2. 如果不用指针或者引用,实参只能向形参里面传递东西(值),就好比上面的举例,实参的东西能拷贝一份搬到形参里面,而形参里面的东西(值)被改变却不会反向传递,就是形参里面的东西不会覆盖实参的东西(值)。

  3. 简单地说就是实参和形参操作的地址不同,如果需要得到改变的值,一般都是用return返回值,如果要改变实参都会使用指针或者引用来实现,这样操纵地址使得实参操纵起来更加的方便。

  4. 形参的作用域仅限于定义的函数内,一旦出了这个函数,定义的形参就会被释放掉。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
haozi596
2013-02-25 · TA获得超过182个赞
知道答主
回答量:27
采纳率:0%
帮助的人:22万
展开全部
int fun(int n)
{
return n;
}
int main()
{
int i = 0;
fun(i);
return 0;
}
这个例子里面n是形参,他不是主函数中具体存在的参数。
i是实参,他在主函数中被定义,也就是在内存中有这个实际的个体,而在fun函数中,以n的形式被传入。
区分起来很简单,形参在自定义的函数中被定义,如n。而实参是在调用函数的时候需要被传入的参数,如i。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sorthoth
2013-02-25 · TA获得超过685个赞
知道小有建树答主
回答量:531
采纳率:42%
帮助的人:294万
展开全部
形参就是函数定义时候给参数随便起的一个名字,只是为了和其它变量区别的形式上的名字
实参就是调用函数时,实际传给函数的参数,传了什么就是什么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
赖福平
2013-02-25 · TA获得超过132个赞
知道小有建树答主
回答量:298
采纳率:100%
帮助的人:185万
展开全部
例如:
int func(int a,int b)
{
return a+b;
}

int main()
{
int x=3,y=5;
func(x,y);
return 0;
}
其中a,b就是形式参数,x,y就是实际参数。形式参数是在函数实现的时候用到,而实际参数是在调用函数时把值传递给形式参数然后执行函数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式