C語言中const的用途

C語言中const的用途

經典的C語言

作為最古老的編程語言之一,C依然高居榜首,這歸功於其可移植性以及微軟、Oracle和蘋果等科技巨頭採用它。它與幾乎所有系統兼容,很適合操作系統和嵌入式系統。由於運行時環境相對小巧,因此C是保持這種系統精簡的完美選擇。強烈建議初學者學C,它實際上是編程語言的通用語言,已催生出了同樣很受歡迎的衍生語言,比如C++和C#。

C語言中const的用途

const修飾的數據類型是指常類型,常類型的變量或對象的值是不能被更新的。

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) { i=10;//error! }

(5) 為函數重載提供了一個參考。

class A { ......

void f(int i) {......} //一個函數

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語言的學習方法,學習路線還有以後發展問題有任何疑問可以隨時問我,工作不忙的時候希望可以給大家解惑。關注我的頭條號,私信給我【C語言】我會發你係統學習資料以及交流學習的地址。


分享到:


相關文章: