pass by value和pass by reference在C++中有啥区别?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pass by value和pass by reference在C++中有啥区别?相关的知识,希望对你有一定的参考价值。
参考技术A 参考:http://zhidao.baidu.com/question/133325189传值(pass by value):
函数调用入口参数时,一般都会创建副本或者调用类对象的拷贝构造函数,所以操作结束后入参的值没有变化,变化的只是副本
引用(pass by reference):
则是直接操作原来的对象,不会建立副本,对该对象做的操作,会直接影响到原来传入的变量或者对象
/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;
以上是关于pass by value和pass by reference在C++中有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
Python中的passed by assignment与.NET中的passing by reference、passing by value
值传递(pass-by-value)引用传递(pass-by-reference)以及函数与const关系
effective_c++条款20,用pass-by-reference-to-const替换pass-by-value
Effective C++条款20:宁以pass-by-reference-to-const替换pass-by-value。Test code