const修飾變量時可能發生的錯誤

C++ const 允許指定一個語義約束,編譯器會強制實施這個約束,允許程序員告訴編譯器某值是保持不變的。如果在編程中確實有某個值保持不變,就應該明確使用const,這樣可以獲得編譯器的幫助。

const int a = 10;
a = 20; //錯誤 a爲不可修改的左值
int a = 10;
const int &r = a;
a = 20;
r = r + 1; //錯誤 ,r爲常量引用不可修改

當const 修飾指針變量時,const出現在變量類型的前面爲頂層const,表示指針所指的變量是常量,const出現在變量類型的後面時,表示該指針爲常量指針

 int a = 10;
const int *p = &a;
*p = 100; //錯誤,p指針指向的
int *const q = &a;
q = p;   //錯誤,q指針爲常量指針不可以指向其他對象

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章