2017-07-12 132 views
-7
const int m=10;  
int &n=m;  
n=11;  
cout << m << n;  

它導致編譯時錯誤下面的代碼。請詳細解釋

我只是無法瞭解這個指針變量。請解釋。

+3

「它導致編譯時錯誤。」編譯器說什麼?通常這個問題寫在那裏。 –

+2

你想讓我們向你解釋你自己的代碼嗎?即使它編譯了,你試圖做的是未定義的行爲,所以不要。 – Borgleader

+0

你的代碼中沒有指針,只是一個參考。你試圖通過一個非'contst'引用修改'const int'。這應該是顯而易見的,爲什麼這不起作用。 –

回答

2

我可以看到爲什麼你遇到這個指針變量的問題:它不是一個。這是一個參考。

你不能有非const參照const事情。這將違反const,並允許n = 11線獲得成功,從而再次違反了原const

const的意思是「我不能,也不會改變這個東西更多」。

欲瞭解更多信息,翻到頁在C++預定約const