指標的頂層和底層const對指標的引用的影響

2021-07-12 00:22:29 字數 1338 閱讀 8340

直接上**

int i = 0;

//***1

const

int * ref11 = &i;

int * &refn11 = ref11;

int * const ref12 = &i;

int * &refn12 = ref12;

int * ref13 = &i;

const

int * &refn13 = ref13;

int * ref14 = &i;

int * const &refn14 = ref14;

//***2

int * const ref21 = &i;

int * const &refn21 = ref21;

int * const ref22 = &i;

const

int * &refn22 = ref22;

const

int * ref23 = &i;

const

int * &refn23 = ref23;

const

int * ref24 = &i;

int * const &refn24 = ref24;

//***3

const

int * const ref31 = &i;

int * const &refn31 = ref31;

const

int * const ref32 = &i;

const

int * &refn32 = ref32;

int * const ref33 = &i;

const

int * const&refn33 = ref33;

const

int * ref34 = &i;

const

int * const&refn34 = ref34;

//***4

const

int * const ref41 = &i;

const

int * const &refn41 = ref41;

採用gcc編譯器4.7版本,開啟c++11支援,輸出為:

結果表明:

1、引用的指標物件,其底層const必須與引用的指標型別嚴格匹配

2、非常量引用,其頂層const不被忽略

3、常量引用,可以忽略所引用指標的頂層const,但不能忽略底層const

頂層const和底層const

頂層const 本身是乙個常量 底層const 所指的物件是乙個常量 int const p1 i const修飾p1,p1本身是乙個const,所以這個const是頂層const const int ci 42 const修飾ci,ci本身是乙個const,頂層 const int p2 ci c...

頂層const和底層const

1.頂層 const 與底層 const概念 指標本身是乙個物件,因為,指標實際對應著記憶體單元的一段儲存空間,然而,指標所指向的也是乙個資料物件,因此,指標是乙個常量與指標所指向的是乙個常量是兩個完全不同的概念,頂層 const表示的是指標本身是乙個常量,底層const 表示的是指標所指的物件是乙...

頂層const和底層const

今天讀到函式這章,發現又說到了頂層 高層 const和底層 低層 const,然而自己對他們還是一知半解,就重讀了有關這一部分的知識。感覺自己已經理解了,總結一下。首先這裡是書中的原話 用名詞頂層const表示指標本身是乙個常量 用名詞底層const表示指標所指的物件是乙個常量。我們知道const是...