20180305 c++ const關鍵字解析
若const關鍵字出現在星號左邊,表示被指物是常量;若出現在星號右邊,表示指標自身是常量;若出現在星號兩邊,表示被指物和指標兩者都是常量。
eg:(以下都表示被指物是常量)
void f1(const widget* pw);//f1獲得乙個指標,
//指向乙個常量的(不變的)widget物件
void f2(widget const * pw);//f2也一樣
const在stl迭代器的應用:
1、使得指標自身是常量,而被指物可以改變:
std::vectorvec;
...const std::vector::iterator iter = //iter 的作用像個t* const
vec.begin();
*iter ==10;//沒有問題,改變iter所指物
++iter;//錯誤,iter是const,不能改變指標自身
2、使得被指物是常量,而指標自身可以改變:
std::vector::const_iterator citer = //citer的作用像個const t*
vec.begin();
*citer = 10;//錯誤,*citer是const,指標所指向的內容不能改變
++citer;//沒問題,改變指標的值
c const關鍵字 總結
在全域性作用於里定義非const變數時,在整個程式中都可以訪問.除非特別說明,在全域性作用於的宣告的const變數時定義該物件的檔案的區域性變數.死變數只存在與那個檔案中,不能被其他檔案訪問.非const變數預設為extern.要使const變數能夠在其他地方的檔案中訪問,必須顯示指定為extern...
c const關鍵字詳解
正所謂酒足思淫慾,當衣食無憂的時候自然會產生很多的歪想法,就像當官一樣,權力越大,越容易腐敗。effective c 中第三條 盡量使用const。這就說明使用const是有很大的好處的,const就是把權力盡可能控制一下,這樣就會減免很多出bug的機會。因為乙個專案不可能只有乙個人開發,即使是乙個...
c const關鍵字總結
const int max size 1024 這是最常見的用法,大家都沒問題,const在定義的時候需要初始化。有兩點需要注意一下 a const變數預設是區域性變數,如果需要全域性訪問,需要顯示地extern b const int max size 1024 與 define max size...