本文详细探讨了C++中指针与引用的区别与应用场景。指针可以为空,支持偏移操作,常用于修改变量和高效传递对象;而引用必须初始化,不可为空,且不支持四则运算,但同样能直接修改对象并减少复制成本。文章通过代码示例展示了指针和引用的具体用法,帮助读者理解两者的核心差异及其在编程中的实际应用。
C++指针与引用
指针
- 可以为空(万恶之首)
- 可以做指针的偏移操作
- 可以用做修改一个变量
- 可以用来用来快速传递一个对象,没有复制的成本(只有指针复制的成本)
见下面代码
1 | int f1(int* i) { |
引用
- 引用同指针一样可以直接修改对象本身,减少传递对象的复制成本
- 引用不可为空,即创建必须初始化
- 引用不能同指针一样,进行四则运算
1 | void f1(int& num) { |
详情可见What are the differences between a pointer variable and a reference variable in C++?