1. 取地址运算符(Address-of Operator)
用于获取变量的内存地址
引用是别名的意思
引用(Reference)是某个变量的别名,它和原变量共享同一块内存地址。
2. 引用声明(Reference Declaration)
用于定义引用(别名),引用必须初始化且不能重新绑定到其他变量
3. 按引用传递(Pass by Reference)
在函数参数中传递实参的地址,修改形参的同时也会修改实参
作用
避免拷贝:如果传递的是大型对象(如结构体、类、容器),传值(Pass by Value)会触发拷贝构造函数,而传引用(Pass by Reference)不会。
如果传递的是 vector<int>
而不是 vector<int>&
,整个 vector
会被复制一份,效率低下。
允许修改原始变量:函数内部对引用的修改会影响外部的变量。
如果不需要修改数据,可以加 const
防止意外修改。
4. 位与运算(Bitwise AND Operator)
对整数的二进制位进行按位与操作。(对应位置同时为1才为1)
5. 逻辑与的替代写法(&&
的替代)
在部分场景(如宏定义)中可能见到,但标准逻辑与应使用 &&
6. 函数返回引用(Return by Reference)
函数可以返回引用,通常用于链式操作或返回类成员
注意事项
1.不要返回局部变量的引用
局部变量在函数结束后销毁,返回其引用会导致悬空引用(Dangling Reference),引发未定义行为。
2.可以返回静态变量、成员变量或全局变量
这些变量的生命周期足够长,返回其引用是安全的。