欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > 【C/C++】引用

【C/C++】引用

2025/5/9 0:38:07 来源:https://blog.csdn.net/hallo_zz/article/details/147732198  浏览:    关键词:【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++ 引入的“语法糖”,让变量操作更安全更清晰。
  • 常用于函数参数/返回值传递,尤其适用于大型结构体、对象。
  • 它不具备指针的灵活性,但更安全、语义更明确。

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词