引用是C++对C语言的扩展,引用可以理解为变量的一个别名,所谓别名就是人还是同一个人,只是多了一个名字而已,对变量也是如此。
如:
int a = 10;
int &b = a;
这里b就是变量a的一个别名,他们代表的内存地址是完全相同的,注意这里b不是指针,
c++没有规定引用的底层实现,所以编译器实现引用时,可以为引用分配空间,也可以不分配空间。
引用与应用的主要区别有以下三点:
1.在任何情况下都不能使用指向空值的引用。也就是所存在空指针,但不存在空引用,一个引用必须总是指向某个对象的,这个对象是一开始就必须指定了的。
2.引用由于不存在空引用,所以使用引用之前不需要测试它的合法性,而指针则应该总被测试,防止其为空。
3.指针可以被重新赋值以指向另一个不用的对象,而引用则总是指向在初始化时被指定的对象,以后不能改变(指定的对象的内容可以改变)。