好處:1、保護資料,增強**的健壯性。
2、便於進行型別檢查。 const常量有資料型別,而巨集常量沒有資料型別。編譯器可以對前者進行型別安全檢查,而對後者只進行字元替換,沒有型別安全檢查,並且在字元替換時可能會產生意料不到的錯誤。
3、可以節省空間,避免不必要的記憶體分配。
4、提高了效率。 編譯器通常不為普通const常量分配儲存空間,而是將它們儲存在符號表中,這使得它成為乙個編譯期間的常量,沒有了儲存與讀記憶體的操作,使得它的效率也很高。
用法:1、const用於將某個變數變為常值,使其在接下來的程式中無法再次被更新,否則編譯器將報錯。
ps:如果要對該變數進行操作,只能在初始化時對其進行操作。
int f(const int a)//a在該函式中將無法進行修改。
int main()
const int *p;//該處p指標的值也無法進行更新。
2、用於在類中宣告該函式是是上個函式的過載。
class p
3、常引用。格式為
const 型別識別符號 & 引用名;
常引用所引用的物件不會被更新,並且如果被引用量是常量那麼只能通過常引用引用。
void f(const int &a,const int &b)//a,b所被引用的值在該函式中無法被更新。
ps:
const 轉換為非 const的方法:
採用const_cast 進行轉換。
用法:const_cast (expression)
該運算子用來修改型別的const或volatile屬性。除了const 或volatile修飾之外, type_id和expression的型別是一樣的。
常量指標被轉化成非常量指標,並且仍然指向原來的物件;
常量引用被轉換成非常量引用,並且仍然指向原來的物件;
常量物件被轉換成非常量物件。
編譯器通常不為普通const常量分配儲存空間,而是將它們儲存在符號表中,這使得它成為乙個編譯期間的常量,沒有了儲存與讀記憶體的操作,使得它的效率也很高
C中CONST的使用
基本解釋 const是乙個c語言的關鍵字,它限定乙個變數不允許被改變。使用const在一定程度上可以提高程式的健壯性,另外,在 別人 的時候,清晰理解const所起的作用,對理解對方的程式也有一些幫助。雖然這聽起來很簡單,但實際上,const的使用也是c語言中乙個比較微妙的地方,微妙在何處呢?請看下...
c中const的使用
const關鍵字 int const p和const int p的功能一樣,都是p指向的物件不能通過p指標改變,p可以變 即 p為常量,不可以改變,而指標p為變數可以更改。int a 1 int b 2 int const p1 p1 a p b 可行 p1 3 不可以 int const p宣告中...
C中CONST的使用
基本解釋 const是乙個c語言的關鍵字,它限定乙個變數不允許被改變。使用const在一定程度上可以提高程式的健壯性,另外,在 別人 的時候,清晰理解const所起的作用,對理解對方的程式也有一些幫助。雖然這聽起來很簡單,但實際上,const的使用也是c語言中乙個比較微妙的地方,微妙在何處呢?請看下...