其实是指针常量
int a = 10;
int &ref = a;
引用必须初始化
引用参数
void modifyValue(int &val) {
val *= 2;
}
int main() {
int num = 5;
modifyValue(num);
// 此时 num 的值变为 10
return 0;
}
引用返回值
int& findMax(int &a, int &b) {
return (a > b) ? a : b;
}
int main() {
int x = 10, y = 15;
int &result = findMax(x, y);
result = 100; // 修改 x 或 y 的值
return 0;
}
示例
#include <iostream>
// 函数参数为引用,修改原始值
void modifyValue(int &val) {
val *= 2;
}
// 函数返回引用,返回较大的数
int& findMax(int &a, int &b) {
return (a > b) ? a : b;
}
int main() {
int num = 5;
std::cout << "Original value: " << num << std::endl;
// 使用引用修改原始值
modifyValue(num);
std::cout << "After modifyValue: " << num << std::endl;
int x = 10, y = 15;
int &result = findMax(x, y);
result = 100; // 修改 x 或 y 的值
std::cout << "Updated value of x or y: " << result << std::endl;
return 0;
}
Original value: 5
After modifyValue: 10
Updated value of x or y: 100
常量引用
因为引用本身其实是指针,传参必须是变量。加上const就是解决可以传常量
// 函数参数为引用,修改原始值
void modifyValue(const int &val) {
val *= 2;
}
int main() {
modifyValue(5);
}