#include<iostream>
/*
*
*
*/
int main()
{
int v1(100);
int &v2=v1;
int v3;
v2=v3;
return 0;
}
我这里v2不就绑定别的对象么,可是编译很正常啊。求解
引用只能在创建的时候初始化,即声明的同时并定义。那么这里你的v2绑定了v1,相当于v2是v1的别名(外号)。你可以对两个取地址,
得到的结果是一样的。所以对于v2=v3,其本质是对v1赋值。
v2的地址和v1的地址依旧相同,以v2作为左值并未改变v2的指向,只改变了v2所在地址的内容。若以&v2作为左值编译器会报错。