const型別總結

2022-08-30 12:36:12 字數 1396 閱讀 9705

const 表示常型別

作用:

1、具有不可變性。

2、可以很方便對引數進行調整和修改,和巨集定義一樣,不變則已,變都變。

3、保護被修飾的東西,防止被意外修改。(如:在修飾函式的形參時,加const可以保證引數的值不被改變)

4、為函式過載提供參考。

5、節省空間,避免不必要的記憶體分配。(如:巨集定義是立即數,會分配多次記憶體,因此有多個複製;const在記憶體只有乙份複製)

6、提高程式效率,編譯器通常不為普通的const常量分配記憶體,而是存在符號表中,就沒有儲存和讀記憶體的操作。

使用場景:(以int為例)

1、修飾一般常量,此時const可以在int前或者int後。

2、修飾常陣列,此時const可以在int前或者int後。

const int a = ;

int const a[ ] = ;

3、修飾常物件,此時const可以在class前或者class 後。

4、修飾常指標。

const int *a; //修飾指向的物件,a可以變,a指向的內容不能變

int const *a; // 修飾指向的物件,a可以變,a指向的內容不能變

int *const a; // 修飾a指標,a不可變,a指向的物件可變

const int *const a; // a及其指向的物件都不能變

5、修飾常引用。

const int &s;

6、修飾函式的常引數。

void fun(int const a){}

7、修飾類的成員函式。

8、修飾函式的返回值。

常引用:

目的:避免在毫不知情的情況下改變了變數的值。

引用的初始化:

1、是左值(左值就是可以放在等號左邊的值,是乙個位址),可以。

2、不是左值,只能對常引用賦值,而且賦值的過程是:將值隱式轉換到型別t,放在乙個臨時變數中,再將這個臨時變數來初始化這個常引用。

double & dr = 1; //錯,非常引用只能用左值來初始化

const double & dr = 1; // 對,相當於double temp = double(1); const double & dr = temp;

因為臨時變數是const 型別,第乙個表示式相當於將試圖將乙個const型別轉化為非const型別,所以錯了。

總之,引用型引數能被定義為const就定義為const。

c 學習總結 復合型別,const。

複習c 有必要對一些東西做一下筆記,方便以後學習,如有問題,歡迎提出。首先,最常用兩種復合型別應該是引用和指標。所謂復合型別,是在基本型別基礎 如 int 上定義的型別。引用是c 的乙個復合型別,首先,它和指標不同的是它並不是乙個物件,僅僅只是另乙個物件的別名。而且,引用繫結的東西必須是乙個物件,引...

const 學習總結

以前也有學過 const 對它了解 歸根結底只是了解 用法只限於簡單的使用沒有乙個深入的理解,用法1 代替巨集和常量 define max 1000 沒有了解 const之前 const int max 1000 有了const之後 用法2 引數 myfun string str1 以前的寫法 my...

const用法總結

1.const 一 對於基本宣告 const int r 100 標準const變數宣告加初始化,編譯器經過型別檢查後直接用100在 編譯時替換 二 對於指標 1.int x 10 const int r x 指標 指向的內容是常量 r指向的內容不能夠通過r改變,但如果指向的內容是非const 例如...