頂層const的示例

2021-08-15 23:53:35 字數 623 閱讀 7379

1.

頂層const作用於物件本身

const int ci = 42; //不能改變ci,const是頂層的

int i = ci; //正確:當拷貝ci時,忽略了它的頂層const

int *const p = &i; //const是頂層的,不能給p賦值

*p = 0; //正確:通過p改變物件的內容是允許的,現在i變成了0

2.void fcn(const int i)

void fcn(int i ){} //錯誤:重複定義了fcn(int)

3.形參的初始化方式和變數的初始化方式是一樣的。我們可以使用非常量初始化乙個底層const物件,但是反過來不行;同時乙個普通的引用必須用同型別的物件初始化。

int i = 42;

const int*cp = &i; //正確:但是cp不能改變i

const int &r = i; //正確:但是r不能改變i

const int &r2 = 42; //正確

int *p = cp; //錯誤:p的型別和cp的型別不匹配

int &r3 = r; //錯誤:r3的型別和r的型別不匹配

int &r4 = 42; //錯誤:不能用字面值初始化乙個非常量引用

C 頂層const,頂層const,引用總結

頂層 const 表示的是指標本身是乙個常量,底層const 表示的是指標所指的物件是乙個常量。頂層const拷貝遵守原則 1.const常量不能改變。2.頂層可忽略。const int a 12 int b a 頂層忽略3 非常量可向常量轉換,const int c b 底層const拷貝,則要求...

頂層const 底層const

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

頂層const 底層const

頂層const 底層const 個人理解 頂層cosnt 就是不影響變數型別,作為修飾符的存在。底層則會影響到變數型別 例如 int pi 這是乙個int 型別的變數,乙個指向int型的指標。int const p1 這還是乙個int 型別的變數 首先p1是乙個指標型別,指向的是int型別的值。才不...