天天看點

c++深入了解const以及引用詳解

C++引用詳解

1、其實就是給變量起一個别名

2、其文法形式:變量類型 &别名 = 原名 例: int &b = a;

3、引用必須進行初始化,int &b;是不對的

4、引用一旦初始化後,就不可以更改了。

5、引用的傳遞:傳遞有值傳遞和位址傳遞。引用傳遞就是位址傳遞,通過引用參數産生的效果通同按照位址傳遞是一樣的,引用的文法更清楚和簡單

6、不要傳回局部變量的引用。函數的調用可以作為左值。(如果函數的傳回值是引用,這個函數調用可以作為左值)

7、引用的本質:在C++内部實作是一個指針常量

int &ref = a; //自動轉換為int * const ref = &a ,指針常量是指針的指向不可改,也說明了為什麼引用不可更改

ref = 20; //内部發現ref是引用,自動幫我們轉化為 *ref = 20;

const詳解

const分為兩種, 一種是底層的const, 一種為頂層的const

底層const

底層的const表示指向是常量, 指針本身是變量或者變量

頂層const

頂層const表示指針本身是常量, 指向為變量或者常量

const的指派含義

  1. //省略頭檔案以及命名空間

    int a[10] = {0};

    int* c1 = a; //可以通過c1改變數組的值, c1也可以指向其餘數組 int* const c2 = a;//必須初始化, c2本身是一個常量, 隻能指向a數組, 初始化就不能改變, 但是可以通過c2改變數組的值 const

    int* c3 = a;//無所謂初始化, 不能通過c3改變數組的值, 但是c3本身是一個變量, 可以指向其餘的數組

    //上述可得, c2就是頂層const, c3就是底層const

c++

繼續閱讀