指针和引用的区别:
(1)指针是存储地址的变量,指向内存的一个存储单元;引用是原变量的一个别名
int a=1;int *p=&a;
int b=1;int &c=b;
第一行定义了一个整型变量a,p为指针变量,指向a的内存地址,p的值是a存放的地址
第二行定义了一个整型变量b,c为b的一个引用,实际上b和c共用同一个内存地址
(2)可以有const类型指针,但不存在const引用
(3)指针可以有多级,但是引用只能是一级(int **p合法,int &&a不合法)
(4)指针的值可以为NULL但是引用不可以,引用在定义时必须被初始化
(5)指针可以在初始化之后被改变指向其他的存储单元,但是引用初始化后不能再改变
(6)sizeof(引用)是原变量的大小,sizeof(指针)是指针的大小
(7)指针和引用的自增(++)意义不同
(8)用指针进行参数传递,传递过来的是参数的地址;引用作为函数参数传递,实际上传递的是实参本身