c中只有传值方式,传地址(指针)实际上也可以理解为传值(地址的拷贝)。无传引用
c++中有传引用。可以理解为起别名,(当然底层是指针实现的)。好处是方便操作,无需解引用就可实现指针操作(下面有例子)。
以下cpp
#include <iostream>
void change(int &a , int &b);
using namespace std;
int main()
{
int p = 1 , q = 2;
change(p,q);//注意这里直接把 p 和 q传进去了,不是传 &p &q
cout << "p "<<p<<"q "<<q << endl; //结果是p:2 q:1
return 0;
}
void change(int &a , int &b)//注意不要和c中的取地址操作弄混,这里传进去的是别名、别名!
{
int p = a;//底层是用指针实现的,不然这么写要是用传值方式根本无法实现交换两变量的值
a = b;
b = p;
}
知乎回答
C++ 中引用有什么用? - 谢之易的回答 - 知乎https://www.zhihu.com/question/34267829/answer/58414818