1.初始化要求不同
引用在创建的时候必须初始化,即引用到一个有效的对象;而指针在定义的时候不必初始化,可以在定义后面的任意地方重新赋值.
2.可修改性不同
引用一旦被初始化为指向另一个对象,它就不会能被改变为另一个对象的引用;
而指针在任何时候都可以改变为指向另一个对象。
3.不存在NULL引用
引用不能使用指向空值的引用,它必须总是指向某个对象;
而指针则可以是NULL。
4.测试的区别
由于引用不会指向控制,意味着使用引用之前不需要测试它的合法性;
而指针则需要经常进行测试。因此使用引用的代码效率比使用指针的要高.
5.应用的区别
其实在二进制层面,引用一般都是通过指针来实现的,只不过编译器帮我们完成了转换。