C++中传值调用参数和引用调用参数具体的区别?

不是定义形式上的区别... 不是定义形式上的区别 展开
 我来答
panelwork
2010-01-14 · TA获得超过615个赞
知道小有建树答主
回答量:562
采纳率:0%
帮助的人:568万
展开全部
我的理解主要是操作对象的问题

传值:
函数调用入口参数时,一般都会创建副本或者调用类对象的拷贝构造函数,所以操作结束后入参的值没有变化,变化的只是副本

引用:
则是直接操作原来的对象,不会建立副本,对该对象做的操作,会直接影响到原来传入的变量或者对象

引用会给程序带来不安全的因素,除非必要时,很少会用到引用
忘至白葬不情必0T
2010-01-14 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:90%
帮助的人:1.2亿
展开全部
panelwork说的区别是对的,但最后一句话我不赞同,引用传递实际上是经常用的,比如C++里面自己定义类时,拷贝构造函数必然要用引用传递.或者当比较大的类作为函数参数时,一般也用引用传递,但为了防止误操作,可以加const
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2010-01-14
展开全部
简单的说,传引用的参数,可以改变调用该函数中时传入的变量的值(就像传地址),传值则不可以改变调用时传入的变量的值.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xuxutitle
2010-01-14 · TA获得超过1662个赞
知道小有建树答主
回答量:1069
采纳率:0%
帮助的人:564万
展开全部
C++传值调用需要创建一个实参副本,所以要重新开辟一块内存,进行赋值拷贝动作。
引用传参,因为引用是变量的别名,所以不需要进行重新分配内存,重新赋值,可以节约系统资源。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
林声飘扬
2010-01-14 · TA获得超过1630个赞
知道小有建树答主
回答量:1126
采纳率:50%
帮助的人:957万
展开全部
/C++中传值调用参数和引用调用参数具体的区别?
#include <iostream>
int max(int a,int b)
{ if(a>b)
return a;
else
return b;
}
void ma(int &a,int &b)
{
if(a>b)
cout<<a;
else
cout<<b;
}

int main()
{ int x=5,y=7;
int &i=x; //表示i是x别名,也就是存贮在相同单元里
int &j=y; //同理

cout<<max(x,y); //x,y值作为拷贝副本传递a和b;

ma(i,j);
cout<<x<<" "<<y;//i和j的值变化会影响到x和y;

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式