目錄
一、const的意義
const的意義是“只讀”。它修飾的變量不允許被修改。cconst只是一個修飾符,常見的幾種const用法:
1)const int ciDat:變量的值不允許被修改;
2) int const icData:同上;
3) const int * cipData:指針的值不允許被修改;
4) int *const ipcData:指針的地址不允許被修改;
5) int const * icpData:指針的值不允許被修改;
6)int & const iData = icData; //地址不能被修改;
總結:const在誰後面誰就不可修改,const在首位就向後移動一位。
二、常量和宏定義的區別
1)處理方式不同,宏在預處理階段,常量在編譯運行階段使用;
2)常量有類型,宏沒有類型修飾,所以常量比宏一個類型檢查;
3)宏在預處理階段進行的是代碼替換,而常量是將值共別人使用,不會開闢空間複製值以共使用;兩者相比,宏需要的內存較多;
總結:const比#define好用!
三、const修飾類成員變量
1)const修飾類成員變量要在類構造中進行初始化;
2)const修飾的類成員變量的生命週期是類對象的生命週期,對象被創建時纔有這個常量。不是所有類實例的對象使用一個常量;若想所有類對象使用同一個常量使用枚舉:enum EM{ dataOne = 100, dataTwo = 200};但是枚舉值得大小有限,EM的大小是4字節。
四、const修飾引用
引用是另一個變量的別名,它本身就是一個常量。不能再讓引用成爲另一個變量的別名,因此只剩下地址是可變的。int & const iData = icData; 引用的地址不能被修改;