C++ 引用传递

以前对引用传递一知半解,尤其是 & 符号。现在做一下梳理。

Get idea from here.

先来看下 alias:

int i = 5;
int &j = i;  // j is an alias to i

j = 5;

这里 j 就是 i 这个变量的另一个名字。所以这个对象现在有两个名字 i 和 j.

现在就好理解引用传递了。用这种方法,形参就变成了实参的一个 alias.

 1 #include<iostream>
 2 using namespace std;
 3 //值传递
 4  void change1(int n){
 5     cout<<"值传递--函数操作地址"<<&n<<endl;         //显示的是拷贝的地址而不是源地址 
 6     n++;
 7 }
 8 
 9 //引用传递
10 void change2(int & n){
11     cout<<"引用传递--函数操作地址"<<&n<<endl; 
12     n++;
13 }
14  //指针传递
15 void change3(int *n){
16      cout<<"指针传递--函数操作地址 "<<n<<endl; 
17     *n=*n+1;
18  } 
19 int     main(){
20     int n=10;
21     cout<<"实参的地址"<<&n<<endl;
22     change1(n);
23     cout<<"after change1() n="<<n<<endl;
24     change2(n);
25     cout<<"after change2() n="<<n<<endl;
26     change3(&n);
27     cout<<"after change3() n="<<n<<endl;
28     return true;
29 }

你可能感兴趣的:(C++ 引用传递)