1、指针是一个实体,是一个变量,只不过这个变量的值存储的是内存中的一个地址。而引用是变量的别名,指向存储该变量的内存单元。
2、在访问指针所指向内存单元的值时,需要对指针做解引用操作。而如果需要访问引用所指向的变量的值,则直接使用该引用。
3、引用智能初始化一次,不能在再将该引用指向其他变量,即“从一而终”,而指针变量的值则可以多次改变。
4、可以有const指针,但是没有const引用。
5、可以有多级指针,如二维指针(int **p)等,但是没有多级引用,(int &&a不能通过编译).
6、sizeof(引用)得到的是引用所指向的变量的大小,而sizeof(指针)得到的是指针本身的大小,具体的值跟计算机的寻址位数有关。
7、指针可以是NULL,但是引用不能为NULL,引用必须和变量关联。