建议科技部与教育部聘请耿同学做学术打假工作
2026/5/14 9:13:28
int&是 int 变量的别名,不是新变量。
int a = 10;
int& b = a; // b 是 a 的引用
此时:a和b指向 同一块内存。修改b就等于修改a。
b = 20;
cout << a; // 输出 20
引用 必须初始化
一旦绑定,不能再指向别的变量
引用本身 不占独立内存(逻辑上)
❌ 错误写法:
int& r; // 错误:引用必须初始化
int& r = 10; // 错误:不能引用字面量(非 const 情况)
| 特性 | 引用int& | 指针int* |
|---|---|---|
| 是否必须初始化 | ✅ 是 | ❌ 否 |
| 是否可为空 | ❌ 不可 | ✅ 可以是 nullptr |
| 是否可重新指向 | ❌ 不可 | ✅ 可以 |
| 使用方式 | 像普通变量 | 需要*解引用 |
int a = 10;
int* p = &a; // 指针
int& r = a; // 引用
不用引用(值传递)
void add(int x) {
x++;
}
❌ 不会改变原变量
使用引用(引用传递)
void add(int& x) {
x++;
}int a = 10;
add(a);
cout << a; // 11
✅ 常用于:
修改实参
提高效率(避免拷贝)
const int&只读引用,最常用。
void print(const int& x) {
// x 不能被修改
}
int&是int类型的引用,本质是变量的别名,用来避免拷贝、提高效率,比指针更安全。