跳到主要内容

指针和引用的区别

定义与语法

  • 指针:是一个变量,存储另一个变量的地址,使用 * 定义 int* ptr;
  • 引用:是一个别名,必须在声明时初始化,并且不能改变,使用 & 定义 int& ref = a;

区别

  • 指针使用 *-> ,引用使用 .
  • 指针可以为空 nullptr,引用不能为空,必须代表某个有效的对象
  • 指针可以随时重新指向另一个地址,引用绑定后不能再次绑定到其他对象

总结

pointers

  • 当需要考虑 "不指向任何对象" 的可能性时,应该使用 pointers
  • 当需要考虑 "在不同时间指向不同对象" 的能力时,应该使用 pointers

reference

  • 当确定 "总是会代表某个对象" ,而且 "一旦代表了该对象就不再改变" ,应该使用 reference