概念
两者都是内存地址的概念
引用是某块内存地址的别名,指针指向某一块内存的地址
区别
1、指针是一个实体,专门用来表达地址的变量,引用只是一个别名,跟常量类似
2、指针的值可变,引用在第一次赋值之后就不可改变
3、引用前面不能加const,否则报错,指针可以
4、引用不能为空,指针可以为空,即null
5、“sizeof 引用”所得的是对象的大小,而“sizeof 指针”所得是指针本身,是地址的大小
eg:class test
{
public:
test(){}
private:
char name;
};
void main()
{
test *a;
test b;
a=&b;
cout<<sizeof(a)<<endl;
cout<<sizeof(b)<<endl;
}
运行以上代码会得到不同的值,sizeof(a)的值永远是4,sizeof(b)的值会根据本体占用内存返回大小
6、自增的含义不同,指针自增表示指向地址的偏移,引用只是一个别名,自增不会引起指向地址的改变,只会引起值的变化