C++ 中的引用(Reference)和指针(Pointer)是两种不同的概念,它们在语法上和语义上有很多不同之处,下面是它们的区别:
-
语法:
- 引用使用
&
符号声明,并且必须在初始化时绑定到一个对象上。例如:int& ref = obj;
- 指针使用
*
符号声明,并且可以在任何时候指向一个对象。例如:int* ptr = &obj;
- 引用使用
-
初始化:
- 引用必须在声明时进行初始化,且一旦初始化后不能再引用其他对象。即引用是一个别名,一旦绑定到某个对象后,就不能再改变。例如:
int& ref = obj;
- 指针可以先声明,然后再初始化,也可以在初始化时直接指向一个对象,还可以修改指向的对象。例如:
int* ptr;
或int* ptr = &obj;
- 引用必须在声明时进行初始化,且一旦初始化后不能再引用其他对象。即引用是一个别名,一旦绑定到某个对象后,就不能再改变。例如:
-
使用:
- 引用在使用时类似于原对象本身,不需要使用特殊的符号来访问对象的成员。例如:
ref = 10;
- 指针需要使用
*
运算符来间接访问指向的对象,或者使用->
运算符来访问指向对象的成员。例如:*ptr = 10;
- 引用在使用时类似于原对象本身,不需要使用特殊的符号来访问对象的成员。例如: