书上说,引用不能重新赋值。可是我下面的代码可以正确运行#include "iostream"using namespace std;void main(){int y=5;int & x =y;x=7;cout<<x<<endl;}
2 回答
摇曳的蔷薇
TA贡献1793条经验 获得超6个赞
不是不能赋值,而是不能修改引用的对象,比如这里x是y的引用,就一直是y的引用不会变化
对引用赋值就是对它引用的对象赋值,比如这里x=7和y=7是一个意思。
哆啦的时光机
TA贡献1779条经验 获得超6个赞
第一,你的程序没有错误是正确的,但是并不能说明:引用能重新赋值,很明显,引用时不嫩重新赋值的,只是你的理解有一点误解了!引用的赋值,是指引用初始化时,它的引用对象只能是变量,同时,一旦它指定了哪一个对象的引用后,就不能更改了,但是,可以用这个引用(它指定对象变量的变量)来改变他的对象的纸,从而,达到引用的目的:作为变量对象的别名作用,你的程序就是利用这点对引用对象改变值,x=7;所谓的引用的重新赋值,应该是:int x,y,z;int &x=y;; &x=z; ,这种是对引用类型 x ,改变了它的指定对象,一开始 y 的引用,之后,有重新说明是 z 的引用;这种引用的重新赋值是不允许的;
- 2 回答
- 0 关注
- 1178 浏览
添加回答
举报
0/150
提交
取消