頂層const:本身是乙個常量
底層const:所指的物件是乙個常量
int *const p1 = &i;
const修飾p1,p1本身是乙個const,所以這個const是頂層const
const
int ci = 42;
const修飾ci,ci本身是乙個const,頂層
const
int *p2 = &ci;
const修飾*p2,修飾的是p2所指的物件,所以是乙個底層const
const
int *const p3 = p2;
第乙個const修飾*const p3,為const p3所指的物件,所以為底層
第二個const修飾p3,則p3本身為const,這個const為頂層const
限定符constexpr只對指標有效,與指標所指的物件無關
const
int *p = nullptr;
const修飾p所指的物件,所以為底層const
constexpr
int *q = nullptr;
由於constexpr只修飾指標,所以q為乙個常量,故為頂層const
typedef
char *pstring;
const pstring cstr = 0;
const修飾cstr,cstr本事為乙個常量,所以為乙個頂層const
不能將型別別名替換成原來的樣子
const
char *cstr = 0;
此時const修飾cstr所指的物件,這時的const是乙個底層const,而用型別別名所定義的是乙個頂層const 頂層const和底層const
1.頂層 const 與底層 const概念 指標本身是乙個物件,因為,指標實際對應著記憶體單元的一段儲存空間,然而,指標所指向的也是乙個資料物件,因此,指標是乙個常量與指標所指向的是乙個常量是兩個完全不同的概念,頂層 const表示的是指標本身是乙個常量,底層const 表示的是指標所指的物件是乙...
頂層const和底層const
今天讀到函式這章,發現又說到了頂層 高層 const和底層 低層 const,然而自己對他們還是一知半解,就重讀了有關這一部分的知識。感覺自己已經理解了,總結一下。首先這裡是書中的原話 用名詞頂層const表示指標本身是乙個常量 用名詞底層const表示指標所指的物件是乙個常量。我們知道const是...
頂層const和底層const
清晰一組概念 首先只有指標才存在頂層與底層const之別 引用也可以算有 引用的本質是指標.然後簡述下const的用法 const修飾的型別 首先看const前面是否有型別 type 如果有就是修飾前面的type否則向後看。例項 const int a const 修飾int int const a...