頂層const和底層const

2021-08-17 14:32:39 字數 1210 閱讀 4828

今天讀到函式這章,發現又說到了頂層(高層)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...