1.从语法规则上讲,指针变量是存储某个实例的地址,引用是某个实例的别名。
2.程序为指针变量分配内存区域,而不为引用分配内存区域。
3.解引用是指针使用时要在前加“*”,引用可以直接使用。
4.引用在定义时就被初始化,之后无法改变。
5.指针变量的值可以发生改变。
6.指针变量的值可以为空,但没有空引用这个概念。
7.在计算sizeof时,指针变量得到的是指针变量的大小,引用得到的是变量的大小。
8.理论上指针的级数没有限制,但引用只有一级,即不存在引用的引用(int&& x=10 此处是右值引用)。
9.++引用和++指针的效果不一样,指针是指向下一个存储单元的地址,引用是对某一个实体的++。
相似的一个点:绝不允许把局部变量以引用或者指针的形式返回,要想正常返回就要变量的生存期不受函数的影响,设置为为静态或者全局变量
引用是指针的语法糖,再往深层次来讲实际上引用最终会变成指针,在汇编层次编译器看见引用会替换为*const,它是一个自身为常性的指针。