导航菜单

C++编程/引用
课程进度 46% · 第9/18章9/18章 · 标签 1/3
1

引用的基本概念

引用是 C++ 中的一个重要特性,它为对象提供了一个别名。引用必须在创建时初始化,并且一旦初始化后不能更改为引用其他对象。

cpp
1
// 引用的声明和初始化
2
int num = 42;
3
int& ref = num; // ref 是 num 的引用
4
 
5
// 通过引用修改原变量
6
ref = 100; // 此时 num 也变为 100
7
cout << num; // 输出 100
8
 
9
// 引用作为函数参数
10
void increment(int& x) {
11
x++; // 直接修改原始变量
12
}
13
increment(num); // num 变为 101
14
 
15
// 常量引用
16
const int& cref = num;
17
// cref = 200; // 错误!不能通过常量引用修改
18
 
19
// 引用作为函数返回值
20
int& getMax(int& a, int& b) {
21
return (a > b) ? a : b;
22
}
23
int x = 5, y = 10;
24
getMax(x, y) = 100; // y 变为 100

!引用必须在创建时初始化。一旦初始化,不能再引用其他对象。不存在空引用

2

引用的应用场景

cpp
1
// 1. 避免拷贝(大对象)
2
void process(const vector<int>& data) {
3
// 传入引用,不拷贝
4
}
5
 
6
// 2. 修改实参
7
void swap(int& a, int& b) {
8
int temp = a;
9
a = b;
10
b = temp;
11
}
12
 
13
// 3. 范围 for 循环修改元素
14
vector<int> vec = {1, 2, 3};
15
for (int& v : vec) {
16
v *= 2; // 通过引用修改原元素
17
}
18
 
19
// 4. 返回容器元素引用
20
int& getElement(vector<int>& v, int i) {
21
return v[i];
22
}
23
getElement(vec, 0) = 100; // 直接修改

📖const 引用可以绑定临时对象,延长其生命周期。这是函数参数传递的推荐方式