const含義:
只要乙個變數前用const來修飾,就意味著該變數裡的資料只能被訪問,而不能被修改,也就是意味著const「唯讀」(readonly)
規則:const離誰近,誰就不能被修改;
const修飾乙個變數時,一定要給這個變數初始化,若不初始化,在後面也不能初始化。
const作用:
1:可以用來定義常量,修飾函式引數,修飾函式返回值,且被const修飾的東西,都受到強制保護,可以預防其它**無意識的進行修改,從而提高了程式的健壯性(是指系統對於規範要求以外的輸入能夠判斷這個輸入不符合規範要求,並能有合理的處理方式。ps:即所謂高手寫的程式不容易死);
2:使編譯器保護那些不希望被修改的引數,防止無意**的修改,減少bug;
3:給讀**的人傳遞有用的資訊,宣告乙個引數,是為了告訴使用者這個引數的應用目的;
const優點:
1:編譯器可以對const進行型別安全檢查(所謂的型別安全檢查,能將程式集間彼此隔離開來,這種隔離能確保程式集彼此間不會產生負面影響,提高程式的可讀性);
eg:void hanshu(const int i) 編譯器就會知道i是乙個不允許被修改的常量
3:可以節省空間,避免不必要的記憶體分配,因為編譯器通常不為const常量分配記憶體空間,而是將它儲存在符號表中,這樣就沒有了儲存於讀記憶體的操作,使效率也得以提高;
4:可以很方便的進行引數的修改和調整,同時避免意義模糊的數字出現;
const修飾指標有4種形式,區分清楚這4種即可全部理解const和指標
第一種:const int *p; //p本身不是const的,而p指向的變數是const的
第二種:int const *p; //p本身不是const的,而p指向的變數是const的
第三種:int * const p; //p本身是const的,而p指向的變數不是const的
第四種:const int * const p;//p本身是const的,而p指向的變數也是const的
C語言關鍵字 Const
c中const的使用 雖然這聽起來很簡單,但實際上,const的使用也是c語言中乙個比較微妙的地方,微妙在何處呢?請看下面幾個問題。問題 const變數 常量 為什麼下面的例子在使用乙個const變數來初始化陣列,ansi c的編譯器會報告乙個錯誤呢?const int n 5 int a n 答案...
C中const關鍵字
const 用法 定義常量,修飾指標 函式的輸入引數和返回值,把定義或者修飾的變數屬性設為唯讀。本質上它只是在全域性資料段或者棧中定義的是乙個唯讀的常量,不是真正位於字串常量區。所以關鍵字const 並不能把變數變成真正的常量,事實上還是可以改變 const 定義的變數的值。const 的目的是為了...
C語言關鍵字const
const 是constant的縮寫,只要有變數前面用const修飾,就意味著該變數裡面的資料是readonly。const可以修飾基本型別,構造型別,指標,等。const int a 10 去掉int a 的值不變 int const a 10 去掉int a的值不變 const int a 10...