1.引用更接近const指针,必须在创建的时候进行初始化,一旦与某个变量关联起来,就一直效忠于它。
例如:
int & rodents = rats;
实际上是以下代码的伪装
int const *pr = &rats;
其中,引用rodents扮演的角色与表达式*pr相同
2.可以通过初始化声明来设置引用,但不能通过赋值来设置。
例如:
int rats = 101;
int & rodents = rats;
另一个变量bunnies想通过赋值将rats变量的引用改为bunnies变量的引用
int bunnies = 50;
rodents = bunnies;
最后发现rats和rodents的地址相同,而该地址与bunnies的地址不同
3.左值引用与右值引用
左值指的是内存当中连续存储的数据, 右值指的是临时存储的结果
(1)左值引用
引用的形式如下:
数据类型 & 表达式;
int a = 10;
int &ia = a;//定义了左值引用变量
ia =2;
引用ia是变量a的别名,对ia的操作与对a的操作完全一样;
(2)右值引用(C++11)
类型 && i = 被引用的对象;