一,区别
- 是否需要初始化
- 指针不需要初始化,但是最好初始化
- 引用必须初始化,不能初始化为空对象,初始化后不能改变
- 是否允许为空
- 指针允许
- 引用不允许
- 是否直接操作对象
- 指针通过某个指针变量指向一个对象,对所指向的对象进行间接操作
- 引用是目标对象的别名,对引用的操作就是直接对目标对象操作
- 是否是对象
指针是对象,指针是有地址的,可以定义指针的指针
引用不是对象,欸有实际地址,不能定义引用指针,也不能定义引用的引用
二,作用
- 引用的作用
- 传参,避免内存分配,以及对象数据的复制
- 函数返回值,避免对象数据的复制
- 指针的作用
- 传参,避免对象数据复制
- 多态(基类指针指向子类)
- 代码复用(不用代码模块调用同一个对象)