const int max_size = 1024;
這是最常見的用法,大家都沒問題, const在定義的時候需要初始化。
有兩點需要注意一下:
a) const變數預設是區域性變數,如果需要全域性訪問,需要顯示地extern
b) const int max_size = 1024 與 #define max_size1024 貌似做了相同的事情,但是是完全不同的兩個同意。
#define作為巨集定義是完全文字替換,而const max_size是作為乙個變數整體的。
下面這段**可以說得更清楚:
const int max_size = 1 << 10;// #define max_size 1<<10
cout << max_size << std;
const int * a = &b; (1)
int const * a = &b; (2)
int * const a = &b; (3)
const int * const a = &b; (4)
(1)(2)的含義是相同的,表示指標所指的記憶體空間不可修改. *a = ***;是非法的
(3)表示指標不可修改,a++是非法的;
(4)表示指標和指標內容都不可修改
void fun(const int &r) (1) 與int const相同
void fun() const (2)
const int fun() (3)
(1) 函式的引數為const,表示函式不可修改引數的值
(2) 函式加const字尾, 此時的函式為自定義結構(struct,class)的成員函式,表示該函式成員不可修改class的成員變數
(3) 函式的返回結果為const
表示返回的結果不可修改,返回結果只能賦值給const修飾的變數
1)對const變數採用統一的編碼風格能減少一些不必要的錯誤
2)給函式傳參時,盡量使用帶const的引用方式
3)返回結果迫不得已才使用const修飾
c const關鍵字 總結
在全域性作用於里定義非const變數時,在整個程式中都可以訪問.除非特別說明,在全域性作用於的宣告的const變數時定義該物件的檔案的區域性變數.死變數只存在與那個檔案中,不能被其他檔案訪問.非const變數預設為extern.要使const變數能夠在其他地方的檔案中訪問,必須顯示指定為extern...
C const 關鍵字總結
c 中關於 const 的知識點很多,在這裡做個總結。const 關鍵字修飾的變數在建立後值就不能改變了,因此必須在建立時進行初始化。物件的型別決定了能夠在物件上進行哪些操作。對 const 物件來說,只能使用那些不能改變物件狀態的操作。如果 const 物件是由乙個編譯時常量 compile ti...
c const關鍵字詳解
正所謂酒足思淫慾,當衣食無憂的時候自然會產生很多的歪想法,就像當官一樣,權力越大,越容易腐敗。effective c 中第三條 盡量使用const。這就說明使用const是有很大的好處的,const就是把權力盡可能控制一下,這樣就會減免很多出bug的機會。因為乙個專案不可能只有乙個人開發,即使是乙個...