一、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限定符,它將乙個物件轉化為常...