【C/C++】引用

C++ 引用(Reference)详解笔记

1. 什么是引用?

  • 引用是 变量的别名
  • 声明一个引用变量后,它和原变量绑定在一起,共用同一块内存。
  • 引用一旦绑定,不能更改为其他变量。

2. 引用的基本语法

int a = 10;
int& ref = a;  // ref 是 a 的引用(别名)
ref = 20;      // 实际上是修改 a 的值

输出:

std::cout << a << std::endl;   // 输出 20
std::cout << ref << std::endl; // 输出 20

说明refa 实际上是同一个变量,两者操作互通。


✅ 3. 引用 vs 指针 对比

比较点 引用(Reference) 指针(Pointer)
语法简洁
必须初始化 否(可为 nullptr)
可否改变指向 否(绑定后不可更改) 是(可以指向别处)
可否为 null
支持运算 是(可以加减)

4. 引用的常见用法

4.1 函数参数传引用(节省内存、可修改实参)

void add(int& x) {
    x += 1;
}

int a = 5;
add(a);  // a 变为 6

✅ 使用引用可以避免复制,提高效率。


4.2 函数返回引用(可用于链式赋值)

int& getElement(int arr[], int index) {
    return arr[index];
}

int nums[3] = {1, 2, 3};
getElement(nums, 1) = 10;  // 修改第二个元素

⚠️ 5. 注意事项

  • 引用必须在定义时初始化:

    int& r; // ❌ 错误!必须初始化
    
  • 一旦绑定就不能更换:

    int a = 10, b = 20;
    int& r = a;
    r = b; // 修改 a 的值为 20,而不是让 r 引用 b!
    

6. 示例:指针和引用一起用

void update(int* ptr, int& ref) {
    *ptr = 100;
    ref = 200;
}

int a = 1, b = 2;
update(&a, b);

// a = 100(通过指针)
// b = 200(通过引用)

7. 总结

  • 引用是 C++ 引入的“语法糖”,让变量操作更安全更清晰。
  • 常用于函数参数/返回值传递,尤其适用于大型结构体、对象。
  • 它不具备指针的灵活性,但更安全、语义更明确。

建议:在不需要空指针和地址运算时,优先使用引用 而不是指针。

你可能感兴趣的:(C/C++学习笔记,c语言,c++)