C 的const限定符

2022-03-30 10:26:51 字數 918 閱讀 9687

一、const常量

const int a=123;//編譯時初始化

const int a=get_size();//執行時初始化

a=111//錯誤,a是常量物件,不能改變了

const int b;//錯誤

二、對const和const引用的初始化

初始化常量或常量引用時允許用任意表示式作為初始值,只要該表示式結果能轉換成左式的型別就行,注意與一般引用的區別

int i=1;

const int &r1=i;

const int &r2=2;//正確

int &r2=2;//錯誤

const int &3=r1*2;

double dv=3.14;

const int b=dv;

const int &5=dv;

三、const引用與非常量引用的區別

對常量的引用不能用於修改它指向的物件,注意與初始化的區別:

const int i=11;

const int &ri=i;//正確,引用和物件都是常量

int &r2=i;//錯誤,用非常量引用指向常量,會對i修改

int j=22;

const int &rj=j;//正確,但不能通過rj修改j的值

int &rj2=j;//正確,可以通過rj2修改j的值 

四、const物件在多個檔案下共享

宣告和定義都新增extern關鍵字,只用定義一次。

extern const int bufsize=fun();//file_1.cc中定義並初始化了乙個常量,extern限定它可以被其他檔案使用。

extern const int bufsize;的宣告也使用了extern,表明變數並非本檔案獨有,它的定義在別處。

C 的const限定符

const限定符總是讓人很頭疼,下面講解一下幾個比較容易混淆的概念 對常量的引用 常量引用 一般情況下,引用的型別要與其所引用的物件的型別一致,其中的例外情況就是,當初始化常量引用時,允許用任意表示式作為初始值,只要改表示式能轉換成引用的型別即可。const int i 1 const int ri...

C 之const限定符

const的特點 用const加以限定的變數,無法改變。由於const物件定義之後就無法改變,所以必須對其進行初始化。const物件的常量特徵僅在嘗試改變它的時候表現出來,其他時候和變數無異。const初始化 const int bufsize 512 bufsize無法再改變const物件通常只在...

關於const 限定符

很多引用自c primer一書 比如有時候需要將乙個文字中的資料複製到另外乙個文字。我們需要使用緩衝區,緩衝區的大寫我們可以自己來決定比如1024個位元組,這是乙個常量,我們使用bufsize 1024.但是bufersize物件本身是乙個變數。所以我們可以引入const限定符,它將乙個物件轉化為常...