清晰一組概念:
首先只有指標才存在頂層與底層const之別(引用也可以算有(引用的本質是指標.)).
然後簡述下const的用法:
const修飾的型別:
首先看const前面是否有型別(type), 如果有就是修飾前面的type否則向後看。
例項:
const int a;//const 修飾int
int const a;//const修飾int
const int * pa;//const修飾int,底層const
int const * pa;//const修飾int,底層const
int * const pa;//const修飾int*,底層const
頂層const:修飾識別符號本身型別。
底層const:修飾識別符號的型別的基本型別。
如:
const int * ptr = nullptr;
//在這裡const修飾的是int,而ptr的本身型別是int*
//所以const修飾的是ptr所指的底層資料
//所以const是底層const
int *const ptr = nullptr;
//在這裡const修飾的是int*,ptr的本身型別是int*
//所以此處的const修飾的是ptr變數本身
//所以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是...