C++ 中的引用参数(Reference Parameter)
【引用参数】
在 C++ 中,引用参数(Reference Parameter)是一种特殊的参数传递方式,它允许函数直接操作调用者传递的原变量,而不是操作原变量的副本。引用参数相当于给原变量起了一个别名(alias),操作引用就是操作原变量。
在 C++ 中,原变量(Original Variable)是指被引用参数(Reference Parameter)直接绑定的、调用者传递给函数的实参。
【引用参数的特点】
(1)别名机制:引用是变量的别名,操作引用就是操作原变量。
(2)避免拷贝:传递引用不会创建副本,适合传递大型对象(如结构体、类对象)。
(3)直接修改原变量:函数内对引用参数的修改会同步到原变量。
(4)语法简洁:相比指针,引用更安全、更易读。
【引用参数的使用场景】
(1)需要函数直接修改调用者传递的原变量(如 swap、sort)。
(2)避免拷贝大对象(如传递 std::vector、std::string)。
(3)实现链式调用。
【引用参数 vs 普通参数】
(一)引用参数:函数调用时,引用参数是原变量的别名,与原变量共享同一内存地址。函数内部对引用参数的修改会同步到原变量。
#include <bits/stdc++.h>
using namespace std;void ex(int &a,int &b) {int t=a;a=b;b=t;
}int main() {int x,y;cin>>x>>y;ex(x,y);cout<<x<<" "<<y;return 0;
}/*
in:2 6
out:6 2
*/
(二)普通参数:函数调用时,实参的值会被复制给形参,两者占用不同的内存地址。函数内部对形参的修改仅限于副本,不影响原变量。
#include <bits/stdc++.h>
using namespace std;void ex(int a,int b) {int t=a;a=b;b=t;
}int main() {int x,y;cin>>x>>y;ex(x,y);cout<<x<<" "<<y;return 0;
}/*
in:2 6
out:2 6
*/