const 与引用
如果const int x=3; const int &y=x; y=5是错误的。
那么int x=3; const int &y=x; y=5是否正确?
x=5呢?
如果const int x=3; const int &y=x; y=5是错误的。
那么int x=3; const int &y=x; y=5是否正确?
x=5呢?
2015-10-23
const int x=3; const int &y=x; y=5 // 错误
y 是一个const int的引用,而且 y 引用的是 x。你操作y相当于操作一个const int变量(当然这个变量指的是x),所以你不能给 y 重新赋值。
int x=3; const int &y=x; y=5 // 仍错误,但 x = 5 是可以的。
y 还是一个const int的引用,且引用的是 x,和前一个的道理一样,你无法修改 y 的值。但 y 实际上引用的并非是一个const变量,x 本身还是可以被修改的。
一般说引用就是起了个别名,对引用的操作就相当于对被引用对象的操作。 但这不等于所有对被引用对象(x)的操作都能应用到引用(y)身上。要记住C++是门强类型语言,类型决定了变量能进行什么样的操作。若y是个const int的引用,那就是不能通过操作y来更改y的值。
举报