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
舉報
2015-10-24
const int x=3; ? ?const int &y=x; ? y=5 ?// 錯誤
y 是一個const int的引用,而且 y 引用的是 x。你操作y相當(dāng)于操作一個const int變量(當(dāng)然這個變量指的是x),所以你不能給 y 重新賦值。
int x=3; ?const ?int &y=x; ?y=5 ?// 仍錯誤,但 x = 5 是可以的。
y 還是一個const int的引用,且引用的是 x,和前一個的道理一樣,你無法修改 y 的值。但 y 實(shí)際上引用的并非是一個const變量,x 本身還是可以被修改的。
一般說引用就是起了個別名,對引用的操作就相當(dāng)于對被引用對象的操作。 但這不等于所有對被引用對象(x)的操作都能應(yīng)用到引用(y)身上。要記住C++是門強(qiáng)類型語言,類型決定了變量能進(jìn)行什么樣的操作。若y是個const int的引用,那就是不能通過操作y來更改y的值。