相同点:指针指向一块内存,它的内容是所指内存的地址,而引用是某块内存的别名。
不同点:
(1)引用在使用时可以直接使用,无需解引用(*),指针需要解引用。
(2)指针是实体,引用仅是别名。
(3)引用只能在定义时被初始化,之后不可修改;而指针可变。
(4)引用不能为空,指针可以为空。
(5)sizeof(引用)得到的是所引用对象的大小,而sizeof(指针)则是地址的大小。
(6)引用在创建的同时需被初始化,指针则可以在任何时候被初始化。
(7)不能有NULL引用,指针可以是NULL。
例:
int i = 5;
int &m = i;
修改m,既修改i