const關鍵字總結

2021-09-29 22:45:22 字數 1483 閱讀 1899

被const修飾的變數是不能改變的

const修飾變數時,必須在宣告變數的同時給出初始化(類中的const成員變數不一樣)

定義為變數本身是乙個常量,因此對一切的內建型別常量而言,所有的const都是頂層const

對指標來說,常量指標是頂層const,對於引用則沒有頂層const的概念。

只在指標和引用上有效,其定義是該指標指向或該引用繫結的物件是常量。

因此:頂層const和底層const,引用只有底層const。

int main()

就不能對此方法生命週期外的變數值修改,可以保護成員變數不被方法修改

class example

private:

int m_data;

};

保證在外部呼叫該方法後,返回值不會被篡改

class example

private:

int m_data;

};int main(int argc, char* ar**)

mutable 是為了突破 const 的限制而設定的。可以用來修飾乙個類的成員變數。被 mutable 修飾的變數,將永遠處於可變的狀態,即使是 const 函式中也可以改變這個變數的值。

class example

private:

int m_data;

mutable bool m_isdone;

};

類的const物件只能呼叫類的const成員函式,類的非const物件可以呼叫const成員函式和非const成員函式

class example

private:

int m_data;

};int main(int argc, char* ar**)

不能在類宣告中初始化const資料成員,因為類的物件未被建立時,編譯器不知道const成員的值是什麼。const資料成員的初始化只能在類建構函式的初始化表中進行!

class example

//const成員的初始化只能在類建構函式的初始化表中進行

private:

const int m_data; //const成員

};int main(int argc, char* ar**)

想要在類中建立恆定的常量,應該用類中的列舉常量來實現。

class example

private:

enum ; //列舉常量成員

int m_data;

};int main(int argc, char* ar**)

列舉常量不會占用物件的儲存空間,它們在編譯時被全部求值。列舉常量的缺點是:它的隱含資料型別是整數,其最大值有限,且不能表示浮點數。

const關鍵字總結

這裡會呼叫string類的預設建構函式初始化陣列元素。const int cur 這裡的cur是乙個指向int型別的const物件的指標,const先頂了cur指向的物件的型別,而並非cur本身,所以cur不是const的 const double cur const double pur 1.2 ...

const關鍵字總結

const是乙個c語言的關鍵字,它限定乙個變數不允許被改變。使用const在一定程度上可以提高程式的健壯性,另外,在 別人 的時候,清晰理解const所起的作用,對理解對方的程式也有一些幫助。雖然這聽起來很簡單,但實際上,const的使用也是c語言中乙個比較微妙的地方,微妙在何處呢?請看下面幾個問題...

const關鍵字(摘抄 總結)

4.3.4 const關鍵字與指標 4.3.4.1 const修飾指標的4種形式 1 const關鍵字,在c語言用來修飾變數,表示這個變數是常量 2 const修飾指標有4種形式,區分清楚這4種即可全部理解const和指標 第一種 const int p p本身不是const的,而p指向的變數是co...