猿问

C++,关于引用重新赋值

书上说,引用不能重新赋值。可是我下面的代码可以正确运行#include "iostream"
using namespace std;
void main()
{
int y=5;
int & x =y;
x=7;
cout<<x<<endl;
}

月关宝盒
浏览 1179回答 2
2回答

摇曳的蔷薇

不是不能赋值,而是不能修改引用的对象,比如这里x是y的引用,就一直是y的引用不会变化对引用赋值就是对它引用的对象赋值,比如这里x=7和y=7是一个意思。

哆啦的时光机

第一,你的程序没有错误是正确的,但是并不能说明:引用能重新赋值,很明显,引用时不嫩重新赋值的,只是你的理解有一点误解了!引用的赋值,是指引用初始化时,它的引用对象只能是变量,同时,一旦它指定了哪一个对象的引用后,就不能更改了,但是,可以用这个引用(它指定对象变量的变量)来改变他的对象的纸,从而,达到引用的目的:作为变量对象的别名作用,你的程序就是利用这点对引用对象改变值,x=7;所谓的引用的重新赋值,应该是:int x,y,z;int &x=y;; &x=z; ,这种是对引用类型 x ,改变了它的指定对象,一开始 y 的引用,之后,有重新说明是 z 的引用;这种引用的重新赋值是不允许的;
随时随地看视频慕课网APP
我要回答