C const關鍵字解析

2021-08-16 13:29:29 字數 676 閱讀 8275

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...