(1)相同点:都是间接的引用对象。
(2)使用上差别:
*引用:必须初始化,不能为NULL,即没有NULL引用;不可以被重新赋值;
*指针:可以为NULL,可以被重新赋值执行其它对象。
(3)本质上差别:
*引用:只是一个别名;逻辑上不独立,具有依附性,对引用取地址得到的是变量的地址。
*指针:指针本质上是一个存放变量地址的一个变量,在逻辑上独立,可以被改变。
*程序在编译时分别将指针和引用添加到符号表上,符号表上记录的是变量名及变量所对应地址。指针变量在符号表上对应的地址值为指针变量的地址值,而引用在符号表上对应的地址值为引用对象的地址值。符号表生成后就不会再改,因此指针可以改变其指向的对象(指针变量中的值可以改),而引用对象则不能修改。