引用初始化后,不可能将引用绑定到另一 个对象 ,不能绑定到另一个对象怎么理解

#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作为左值编译器会报错。