c const關鍵字總結

2021-07-03 07:06:02 字數 1025 閱讀 3267

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的機會。因為乙個專案不可能只有乙個人開發,即使是乙個...