指针和引用的区别
定义与语法
- 指针:是一个变量,存储另一个变量的地址,使用 * 定义
int* ptr; - 引用:是一个别名,必须在声明时初始化,并且不能改变,使用 & 定义
int& ref = a;
区别
- 指针使用
*和->,引用使用. - 指针可以为空
nullptr,引用不能为空,必须代表某个有效的对象 - 指针可以随时重新指向另一个地址,引用绑定后不能再次绑定到其他对象
总结
pointers
- 当需要考虑 "不指向任何对象" 的可能性时,应该使用 pointers
- 当需要考虑 "在不同时间指向不同对象" 的能力时,应该使用 pointers
reference
- 当确定 "总是会代表某个对象" ,而且 "一旦代表了该对象就不再改变" ,应该使用 reference