今天讀到函式這章,發現又說到了頂層(高層)const和底層(低層)const,然而自己對他們還是一知半解,就重讀了有關這一部分的知識。感覺自己已經理解了,總結一下。
首先這裡是書中的原話:用名詞頂層const表示指標本身是乙個常量;
用名詞底層const表示指標所指的物件是乙個常量。
我們知道const是乙個限定符,根據書中的話我認為可以這麼理解:
如果const修飾的是乙個指標,那麼這個指標就是乙個頂層const
那如果乙個是const指標指向乙個const物件呢?如果const修飾的是乙個指標指向的物件,那麼這個指標就是乙個底層const
書中有這麼乙個例子:
const int *p2 = &ci; //底層const
const int *const p3 = p2; //靠右的是頂層const,靠左的是底層const;p3既是頂層const也是底層const
那麼對於除了指標之外的其他資料型別呢
書中說:頂層const可表示任意的物件是常量,這一點對任何資料型別都使用,
也就是說,如果乙個const只是單純的修飾乙個與復合型別無關的物件,那麼這個物件是頂層const底層const則與指標和引用等復合型別的基本型別相關。
那麼引用呢?
用於宣告引用的const都是底層const(有關這點,我看書上的意思是記住就行,不用管,55頁)
頂層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前面是否有型別 type 如果有就是修飾前面的type否則向後看。例項 const int a const 修飾int int const a...