C++的頂層const和底層const
概念區(qū)分
頂層const:指的是const修飾的變量本身是一個常量,無法修改,指的是指針,就是 * 號的右邊
底層const:指的是const修飾的變量所指向的對象是一個常量,指的是所指變量,就是 * 號的左邊
舉個例子

區(qū)分作用
執(zhí)行對象拷貝時有限制,常量的底層const不能賦值給非常量的底層const
使用命名的強制類型轉(zhuǎn)換函數(shù)const_cast時,只能改變運算對象的底層const

int const a和const int a均表示定義常量類型a。
const int *a,其中a為指向int型變量的指針,const在 * 左側(cè),表示a指向不可變常量。(看成const (*a),對引用加const)
int *const a,依舊是指針類型,表示a為指向整型數(shù)據(jù)的常指針。(看成const(a),對指針const)
今天的內(nèi)容就到這里啦!
標(biāo)簽: