引用:相当于给变量起了一个别名,但是他的内部实现还是依靠指针来完成的。
指针:指针是一个变量,用于保存另一个变量的内存地址。需要使用*运算符将指针取消引用,以访问其指向的内存位置。
差异:
1、指针可以重新分配,但是引用不可以,引用的赋值只在初始化时完成。指针三心二意、引用从一至终。
2、引用与其变量共用同一个内存地址,但是指针有自己的内存地址。
3、指针可以为NULL,但是引用不可以。
4、指针可以间接传值,而引用不可以。
使用场景
1、使用链表或者树等数据结构时使用指针。
2、如果数据对象是数组,则只能使用指针。
3、如果数据对象是类对象,则使用引用