今天上了C++课, 课上老师说C++中的引用不能赋值. 但是又放出了一个mySwap函数的代码:
void mySwap(int &a, int &b){
int temp = a;
a = b;
b = temp;
}
可以看到, 代码中将b的值赋给了a, temp的值赋给了b. 但a,b是引用, 按老师的说法不是不能赋值吗?
之后查阅了相关的资料, 这里的不能赋值应该这样理解:
假如有如下代码:
int x = 114;
int y = 514;
int &cx = x;
cx = y;
&cx = y;
首先有两个变量x,y. cx引用x.
cx = y 是将y的值赋给被引用的x, 因此可以运行.
&cx = y 是将被引用的对象从x变成y, 这样就是对引用的赋值了, 不能运行.