引用(Reference)是 C++ 中变量的"别名"。它不是新变量,而是给已有变量起另一个名字。声明时用 & 符号,初始化后不能重新绑定到其他变量。
核心要点:
NULL)const T& 是只读引用,既能传参高效又能防止误改&)vs 指针(*)—— 引用是别名、不能为 null、初始化后不变;指针是地址、可以为 null、可以重新指向。
const int &r = x; 后,r = 100; 会怎样?bool findMin(const vector<int>& nums, int& result),用 const 引用接收数组(避免拷贝),用引用参数返回最小值。找到返回 true,空数组返回 false。#include <iostream>
#include <vector>
using namespace std;
bool findMin(const vector<int>& nums, int& result) {
if (nums.empty()) return false; // 空数组特判
result = nums[0]; // 初始化最小值
for (int i = 1; i < nums.size(); i++) {
if (nums[i] < result) // 找更小的
result = nums[i]; // 通过引用更新外部变量
}
return true;
}
int main() {
vector<int> v = {5, 3, 8, 1, 4};
int minVal;
if (findMin(v, minVal))
cout << "最小值: " << minVal << endl; // 输出: 最小值: 1
return 0;
}
int &r; 不初始化 → 编译报错r = y; 不是让 r 指向 y,而是把 y 的值赋给 r 原来绑定的变量const int &r = 42; 合法;非常量引用 int &r = 42; 不行const string &s 比 string s 高效得多