頂層const 底層const

2022-08-14 04:30:16 字數 710 閱讀 3045

頂層const & 底層const

個人理解:頂層cosnt 就是不影響變數型別,作為修飾符的存在。底層則會影響到變數型別

例如:

int *pi; //

這是乙個int *型別的變數,乙個指向int型的指標。

int *const p1; //

這還是乙個int *型別的變數(首先p1是乙個指標型別,指向的是int型別的值。才不管你這個變數是不是有const修飾符)

intconst *p2; //

這是乙個int const * 型別的變數(p2是乙個指標型別,指向的是int const 型別的值)

p1 的就是乙個頂層const ,p2的則是底層const。

在g++ 下得到了驗證

像 int const i; const doulbe j;等等不涉及到指標的都是頂層const

c++ 裡面的過載函式如果像以下 這樣宣告兩個同名函式是會報錯的:

int fun(type name);

int fun(type const name); 

int fun2(type * name);

int fun2(type *const name);

因為實際上是一種型別的形參,而過載函式要兩個函式的形參相異。

頂層const 底層const

頂層const top level const 表示指標 或引用等 本身是個常量。底層const low level const 表示指標指的物件是乙個常量。一般當說到頂層或底層const的時候都是指標或者引用型別的,因為普通型別的const只能是底層的。例如 const int i 0 i 表示是...

頂層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

是否可修改所指向的物件 是否可通過指標修改物件的值 頂層const 指標本身是常量。否 是 底層const 指標所指的物件是常量。是 否 int a 0 const int b 1 const int p1 a 底層const p1指向a int const p1與const int p1等效 p1...