C 讀書筆記 const修飾符

2021-04-27 21:54:09 字數 1625 閱讀 4892

const

定義常量

const int i=1;——i

不能改變

const指標

傳遞給函式的指標有四種方式:

1.指向非常量的非常量指標(

char * s)2.

指向常量的非常量指標(

const char * s

);可用於指向常量物件的非常量指標(或對常量資料的引用)進行傳值,從而得到引用傳遞的效能

3.指向非常量資料的常量指標

int *const ptr=&x;//

指標指向特定的記憶體單元而不能改變指標值。

4.指向常量資料的常量指標

const int * const prt=&x;

修飾函式的傳遞引數

(const & int num):

傳遞乙個引用引數,但是傳遞的引用的變數不如需改變。這樣的好處就是如果是乙個大的物件,不需要在對物件進行複製,而且不會改變原物件,相當於按值傳遞,同時又提高了效能。同樣可以表示為(

int const &num)或者

(const int * num);

同樣具有以上的特點

const

物件:const time noon(12,0,0);

物件不可修改,可提高效能。

const

物件不允許呼叫非

const

的成員函式。

定義const

成員函式:

int gethour() const;

同時,要在寫函式具體實現時定義。

通常,將不修改類中資料成員的成員函式宣告為

const

。編譯器允許對

const

成員函式進行過載。根據物件是否是

const

物件,選擇呼叫的函式。

建構函式和析構函式不能進行

const

宣告。儘管它是非

const

成員函式,但建構函式仍然能初始化物件。在建構函式中呼叫非

const

成員函式初始化

const

物件是允許的。

允許三種成員函式呼叫情況:

1.對非

const

物件呼叫非

const

成員函式

2.對非

const

物件呼叫

const

成員函式3.對

const

物件呼叫

const

成員函式。

const

資料成員 對於

const

資料成員,必須使用成員初始化器進行初始化(所有的資料成員都可以使用初始化器),

const

資料成員不能通過賦值修改或初始化。

成員初始化列表在建構函式體執行前被執行。

class increment

increment::increment(int c,int i)

:count(c),//

對於非const

成員初始化

increment(i);//

對於const

成員初始化

呼叫:increment value(10,5)

C 中const修飾符

const只對它左邊的東西起作用 唯一的例外就是const本身就是最左邊的修飾符,那麼它才會對右邊的東西起作用。指標常量 關鍵字順序為 const 和中文順序一致 例如 int const a,表示指標a是乙個常量,初始化後不可更改 永遠指向某個物件 但是指向的物件的值可以修改,如 a 10 常量指...

const 型別修飾符

const是用來限定所指定的變數或者函式不可作修改。1 修飾變數 當const用來修飾變數的時候,const所指定部分不可修改。a.修飾常規變數 如 const int a 10 int const a 10 這兩種方式的效果一樣,都是將a描述為常量,a的值在被賦初值後不可以修改。但是這和由巨集定義...

const修飾符 小結

1.const 和extern 預設狀態下const物件僅在檔案內有效 當編譯器以初始化的方式定義乙個const物件時,編譯器將在編譯過程中吧用到該變數的地方都替換成對應的值,為了執行上述替換,編譯器必須知道變數的初始值,所以通常const的有效域就在本檔案 為了能在其他檔案中使用該const變數 ...