以前就一直没有弄懂这个问题,今天便好好研究类了一番。
在c++中,指针是一个变量只是这个变量存储的是一个地址,指向内存中的一个存储的单元,而引用跟原来的变量是一个东西,只不过是原变量的一个别名而已。
如 int a=1;int *p=a;这里定义了两个变量,一个是整形变量a,一个是指针变量p,开辟了两个内存空间,p变量的内存空间中存储的是变量a内存空间的地址。
而int a=1;int &b=a;这里定义了两个变量a和b,
但是变量b只是a的一个别名,本质上至开辟了一个内存空间,a和b都指向该内存空间。
指针在初始化后可以改变,即指向不同的内存空间,但是引用一旦确定了就不能改变了,因为引用是一个别名,就像每个人的id一样,是不能改变的。