c語言中const的用法

2021-08-20 21:52:11 字數 1006 閱讀 1363

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