const, 引用與指標

2021-07-10 03:36:31 字數 1499 閱讀 1047

const

int bufsize = 512;

「對const的引用」簡稱為「常量引用」

const

int ci = 1024; //常量

const

int &r1 = ci; //對常量的引用 --> 常量引用,不允許通過r1修改ci

不能通過引用來改變它所繫結的值

double dval = 3.14;

const

double &rd = dval; //不允許通過rd來修改dval

const

double pi = 3.14;

const

double *cptr = π //不能通過cptr改變pi的值

可以將上式看做const double* cptrconst鎖住double* cptr, 即指標指向的為常量

指向常量的指標指向常量的引用可以看做指標/引用的自律性,不通過指標/引用來修改指向/繫結的物件。但並不能保證物件不通過其它途徑被修改。

int ival = 5;          //可以修改

const

int &ri = ival; //ri'承諾'不修改ival

const

int *pi = &ival; //pi'承諾'不修改ival

int errnum = 0;

int *const curerr = &errnum; //指標是常量

可以將上式看做int* const curerr,const鎖住curerr, 即指標為常量

const

double pi = 3.14;

const

double *const pip = π //pip為常量指標, 同時指向乙個常量

後乙個const表明pip不允許被修改,前乙個const表明指向的值不允許被修改。

指標是乙個物件,但引用不是物件,因此存在const指標,但不存在const引用。

頂層const表示物件為常量

底層const表示所指物件為常量

int i=0;

int *const p1 = &i; //頂層指標

const

int *p2 = &i; //底層指標

拷貝時,拷入與拷出物件必須具有相同的底層const資格。但頂層const無影響。

const與指標 引用

定義乙個指標 p const int p null intconst p null int const p null 上面兩行定義完全等價,第三行則不同。下面兩行定義也完全等價 const int const p null intconst const p null 舉例說明 int x 3 con...

const 引用與指標

希望這是最後一次修頂這篇essay了,之前寫的兩次都有些小毛病。打臉,又來更新了。ps 右值指的是字面常量和表示式求值過程中建立的臨時變數。我們忽略掉了相同型別是否可以賦值的情況 我到現在的學習裡都還可以相互賦值 以及型別相容的情況。只考慮const 等修飾符帶來的影響 型別相容 const 底層c...

指標 與 引用 還有const

指標 先定義乙個int型別的a,然後定義乙個指標p 指向 a 的位址 再定義乙個指向a的二重指標q,指向p的位址。int a 10 int p a int p p a so p 10 p a cout a is a cout p is cout p is p cout p is p int q a ...