引用是变量的别名,声明时需初始化且不可更改指向,语法为“类型& 引名 = 变量”,通过ref修改值即修改原变量,如int& ref = original; ref = 20;等价于original = 20。

在C++中,引用(reference)是一种别名机制,它为已存在的变量提供另一个名字。引用在声明时必须初始化,并且一旦绑定到某个变量后就不能再更改指向。与指针相比,引用更安全、更简洁,但在某些场景下指针仍不可替代。
如何使用引用
引用的语法形式是在类型后加一个&符号,然后是引用名,接着用等号绑定到一个已存在的变量:
int original = 10;int& ref = original; // ref 是 original 的引用
ref = 20; // 修改 ref 实际上修改了 original
cout
常见用途包括:
- 函数参数传递:避免拷贝大对象,提高效率,同时允许函数修改实参
- 函数返回值:可返回局部静态变量或容器元素的引用
- 迭代器操作:如遍历vector时使用引用避免复制元素
引用与指针的区别
虽然引用和指针都能间接访问变量,但它们有本质区别:
立即学习“C++免费学习笔记(深入)”;
- 初始化要求:引用必须在定义时初始化,指针可以后期赋值
- 可变性:引用绑定后不能改指向其他变量,指针可以随时改变目标
- 内存占用:引用通常不额外占用内存(编译器优化为别名),指针本身是一个地址变量
- null值支持:引用不能为null,必须指向有效对象;指针可以为空(nullptr)
- 操作语法:引用使用原变量语法,无需解引用;指针需要*操作符访问目标
应用场景对比
根据特性差异,两者适用不同场景:
- 优先使用引用:函数形参(特别是const引用传对象)、返回类成员、RAII资源管理中的别名
- 必须使用指针:需要表示“无对象”(null)、动态分配内存(new/delete)、数组操作、链表等数据结构节点链接
- 性能考虑:大型结构体或类对象传递时,const引用既能避免拷贝又能防止误修改
基本上就这些。引用让代码更清晰安全,指针则提供更大的灵活性。理解它们的本质差异,才能在实际编程中合理选择。










