区别一:引用必须要指代一个对象,所以引用必须初始化,但是指针不需要。
区别二:存在空指针,但是不存在空引用,引用必须要指代某个对象。
区别三:由于不存在空引用,使用引用时候不需要测试是否有效,但是使用指针则需要保证其是有效的。
区别四:指针可以改变其指向的对象,但是引用不可以,引用一被初始化后就不能改变。
区别五:重载[]操作符的时候,由于语法需要,应该返回引用而不是指针。
区别六:从概念上看,指针是一个变量,而引用则是其它变量的别名。
区别七:指针是占据内存的,但是引用则不一定会分配内存,引用只是一个别名。
区别八:对指针使用操作符和对引用使用操作符效果不同,对引用使用操作符得到的都是对所指代的对象使用操作符的结果。