关于引用的一点理解歧义

引用与指针的区别中有一点是,指针可以更改指向而引用在初始化后就不能更改指向

对于下面,编译器没有报错:

int b=100;
int c=2000;
int& name=b;
cout<<name<<endl;
name=c;
cout<<name<<endl;

 其实,这里不是更改了引用name的指向(从b改为c)

实际上,name=c的意思是,使用c的值来更改name指向的变量的值,也就是b的值,实际上等价于b=c;并没有更改name的指向

从下面的结果可以看到,b也被改为了2000

int b=100;
int c=2000;
int& name=b;
cout<<name<<endl;
name=c;
cout<<name<<endl;
cout<<b<<endl;

  

猜你喜欢

转载自www.cnblogs.com/lxy-xf/p/11625402.html