const修飾的資料型別是指常型別,常型別的變數或物件的值是不能被更新的。
1.可以定
義const常量,具有不可變性。 例如:
const int max=100; int array[max];
2.便於進行型別檢查,使編譯器對處理內容有更多了解,消除了一些隱患。例如: void f(const int i) 編譯器就會知道i是乙個常量,不允許修改;
3.可以避免意義模糊的數字出現,同樣可以很方便地進行引數的調整和修改。
4.可以保護被修飾的東西,防止意外的修改,增強程式的健壯性。 還是上面的例子,如果在函式體內修改了i,編譯器就會報錯; 例如:
void f(const int i)
5. 為函式過載提供了乙個參考。
class a //乙個函式
void f(int i) const //上乙個函式的過載 ......
}; 6. 可以節省空間,避免不必要的
記憶體分配
。 例如:
#define pi 3.14159 //常量巨集
const doulbe pi=3.14159; //此時並未將pi放入rom中 ......
double i=pi; //此時為pi
分配記憶體
,以後不再分配!
double i=pi; //編譯期間進行巨集替換,
分配記憶體
double j=pi; //沒有
記憶體分配
double j=pi; //再進行巨集替換,又一次
分配記憶體
! const定義常量從彙編的角度來看,只是給出了對應的
記憶體位址
,而不是象#define一樣給出的是立即數,所以,const定義的常量在程式執行過程中只有乙份拷貝,而#define定義的常量在記憶體中有若干個拷貝。
7.提高了效率。 編譯器通常不為普通const常量分配儲存空間,而是將它們儲存在符號表中,這使得它成為乙個編譯期間的常量,沒有了儲存與讀記憶體的操作,使得它的效率也很高。
C語言中const的用法
1 const的普通用法 const int n 10 意思很明顯,n是乙個唯讀變數,程式不可以直接修改其值。這裡還有乙個問題需要注意,即如下使用 int a n 在ansi c中,這種寫法是錯誤的,因為陣列的大小應該是個常量,而n只是乙個變數。2 const用於指標 const int p int...
C語言中const的用法
關鍵字const用來定義常量,如果乙個變數被const修飾,那麼它的值就不能再被改變,我想一定有人有這樣的疑問,c語言中不是有 define嗎,幹嘛還要用const呢,我想事物的存在一定有它自己的道理,所以說const的存在一定有它的合理性,與預編譯指令相比,const修飾符有以下的優點 1 預編譯...
C語言中const的用法
const是c語言中的關鍵字,用來定義常變數。1 在使用const時有以下規則 const將變數變為唯讀。只有讀許可權,沒有寫許可權 資料型別對const無影響。如以下兩種定義無區別 int const a 10 不管const是在int前或後,都無影響。const int a 10 都對整形變數a...