c++中,实参和形参有什么区别?
4个回答
2022-11-08 · 百度认证:IT168官方账号,优质数码领域创作者
关注
展开全部
有以下区别:
1、主体不同:实参在调用有参函数时,函数名后面括号中的参数为“实际参数”。形参不是实际存在变量,又称虚拟变量。
2、目的不同:实参可以是常量、变量或表达式,无论实参是何种类型的量,在进行函数调用时,都必须具有确定的值,以便把这些值传送给形参。
需要注意当形参和实参不是指针类型时,在该函数运行时,形参和实参是不同的变量,他们在内存中位于不同的位置,形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,而实参内容不会改变。
1、主体不同:实参在调用有参函数时,函数名后面括号中的参数为“实际参数”。形参不是实际存在变量,又称虚拟变量。
2、目的不同:实参可以是常量、变量或表达式,无论实参是何种类型的量,在进行函数调用时,都必须具有确定的值,以便把这些值传送给形参。
需要注意当形参和实参不是指针类型时,在该函数运行时,形参和实参是不同的变量,他们在内存中位于不同的位置,形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,而实参内容不会改变。
展开全部
实参和形参被分配的地址不同。可以这样比喻,实参是一间别墅,而形参是另一间别墅。实参里的东西被复制了一份搬到了形参里面,而形参这件别墅里面的东西被扔了或者添加了新的东西是不会对实参这件别墅造成影响的。
如果不用指针或者引用,实参只能向形参里面传递东西(值),就好比上面的举例,实参的东西能拷贝一份搬到形参里面,而形参里面的东西(值)被改变却不会反向传递,就是形参里面的东西不会覆盖实参的东西(值)。
简单地说就是实参和形参操作的地址不同,如果需要得到改变的值,一般都是用return返回值,如果要改变实参都会使用指针或者引用来实现,这样操纵地址使得实参操纵起来更加的方便。
形参的作用域仅限于定义的函数内,一旦出了这个函数,定义的形参就会被释放掉。
如果不用指针或者引用,实参只能向形参里面传递东西(值),就好比上面的举例,实参的东西能拷贝一份搬到形参里面,而形参里面的东西(值)被改变却不会反向传递,就是形参里面的东西不会覆盖实参的东西(值)。
简单地说就是实参和形参操作的地址不同,如果需要得到改变的值,一般都是用return返回值,如果要改变实参都会使用指针或者引用来实现,这样操纵地址使得实参操纵起来更加的方便。
形参的作用域仅限于定义的函数内,一旦出了这个函数,定义的形参就会被释放掉。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int fun(int n)
{
return n;
}
int main()
{
int i = 0;
fun(i);
return 0;
}
这个例子里面n是形参,他不是主函数中具体存在的参数。
i是实参,他在主函数中被定义,也就是在内存中有这个实际的个体,而在fun函数中,以n的形式被传入。
区分起来很简单,形参在自定义的函数中被定义,如n。而实参是在调用函数的时候需要被传入的参数,如i。
{
return n;
}
int main()
{
int i = 0;
fun(i);
return 0;
}
这个例子里面n是形参,他不是主函数中具体存在的参数。
i是实参,他在主函数中被定义,也就是在内存中有这个实际的个体,而在fun函数中,以n的形式被传入。
区分起来很简单,形参在自定义的函数中被定义,如n。而实参是在调用函数的时候需要被传入的参数,如i。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
加点儿分吧,这样大家都会关注的!
你的提问也会被排到前面!
你的提问也会被排到前面!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询