★同样点:

●都是地址的概念;

指针指向一块内存,它的内容是所指内存的地址;而引用则是某块内存的别名。

★不同点:

●指针是一个实体,而引用仅是个别名;

●引用仅仅能在定义时被初始化一次,之后不可变;指针可变;引用“从一而终”,指针能够“见异思迁”;

●引用没有const,指针有constconst的指针不可变;

●引用不能为空,指针能够为空;

●“sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身的大小;

●指针和引用的自增(++)运算意义不一样;

●引用是类型安全的,而指针不是 (引用比指针多了类型检查)



总结:

1.非空差别。  不论什么情况下都不能使用指向空值的引用。

2.合法性差别。  在使用引用之前不须要測试它的合法性,指针则总是被測试,防止其为空。

3.可改动差别。  指针能够被又一次赋值指向不同的对象。  引用不能被改动,可是指向的对象其内容能够改动。

4.应用差别。