引用
概念与定义
引用并非定义新变量,而是为已存在变量起别名。编译器不会为别名开辟新空间,两者共享同一内存区域。如同'土豆'与'马铃薯',名称不同但实体一致。
语法格式:
类型& 别名 = 变量;
示例:
int a = 10;
int& num = a; // num 是 a 的别名
注意,在 C++ 引用中 & 表示取别名,而非 C 语言中的取地址操作。
核心特性
1. 必须初始化
引用在使用前必须绑定到具体对象,不能悬空。
#include<iostream>
using namespace std;
int main() {
int a = 10;
int& num = a; // 正确
// int& num; // 错误:未初始化
return 0;
}
通俗理解:就像给张三起外号叫小明,必须先确定主体是谁,否则外号无意义。
2. 多对一关系
一个变量可以有多个引用(别名),但一个引用只能绑定一个变量。
int a = 10;
int& num1 = a;
int& word = a;
int& word2 = word;
// 输出地址均相同
一旦引用绑定,不可更改指向其他变量,否则会导致编译错误。
应用场景
引用的主要价值在于函数传参和返回值处理,能有效避免大对象拷贝开销及指针操作的不安全性。
场景一:函数传参优化
传统 C 风格通过指针传递参数,需解引用且存在空指针风险。使用引用则更直观高效。
void Swap(int& x, int& y) {
int temp = x;
x = y;
y = temp;
}
{
a = , b = ;
(a, b);
}


