const使用總結

2021-07-24 16:53:13 字數 1816 閱讀 4237

const 的主要用法是防止物件再次被修改。

下面總結一下const的常見使用情況

這樣這個變數在後面就不可以再被修改。

const

int val = 10;

//val = 20; //錯誤,不可被修改

如果使用引用傳遞引數或按位址傳遞引數給乙個函式,在這個函式裡這個引數的值若被修改,則函式外部傳進來的變數的值也發生改變;若想保護傳進來的變數不被修改,可以使用const保護。

void fun1(const

int &val)

void fun2(int &val)

void main()

#define  pi  3.14 //使用#define巨集

const

double pi = 3.14

//使用const,這時候pi並沒有放入記憶體中。

double a = pi; //這時候才為pi分配記憶體,不過後面再有這樣的定義也不會再分配記憶體。

double b = pi; //編譯時分配記憶體

double c = pi; //不會再分配記憶體,

double d = pi; //編譯時再分配記憶體

const定義的變數,系統只為它分配一次記憶體。而使用#define定義的常量巨集,能分配好多次,這樣const就很節約空間。

class

private:

int a ;

static

int b;

}

const

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

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

const

int *const a;//指標a和a指向的物件都不可變

修飾函式返回值,防止返回值被改變

const

int fun();//接收返回值的變數也必須加const

const

int a = fun(); //接收的變數也要是const的,int a = fun()是錯誤的

使用const修飾的變數必須初始化,在類中又不能在定義時初始化,

class

初始化const int型別(沒有static),在類的建構函式上初始化

class

test

private:

const int b;

}

初始化static const int這個型別的(帶有static的),在類的外面初始化

class

test

const

int test::c=10; //類的外部初始化c為10

const定義的物件變數只能作用於這個程式該c/c++檔案,不能被該程式的其他c/c++檔案呼叫

如file1.cpp中 const

int val;

在file2.cpp中, extern intval; //錯誤,無法呼叫,

要想const定義的物件變數能被其他檔案呼叫,定義時必須使用extern修飾為

extern

const

int val;

非const變數預設為extern,要是const能被其他檔案訪問必須顯示指定為extern

Const 使用方法總結

const 使用方法總結 const限定符的特點在於 強制最低訪問權原則。用這個原則正確的設計軟體可大大減少除錯時間和不良 並且能夠使程式易於修改和除錯。給函式傳遞的指標有如下四種情況 指向非常量資料的非常量指標 指向非常量資料的常量指標 指向常量資料的非常量指標 指向常量資料的常量指標 1 如果傳...

const使用及問題總結

最近在論壇中回答了乙個別人提出的關於const的問題,就隨著自己的理解答覆了,不久就有朋友引用貼子說我說的有問題。於是乎自己思索思索 翻翻書發現自己理解的確實有問題。好記性不如爛鍵盤,何況記性不好,為了加深理解以及以後查詢,今天就好好總結一下。定義乙個變數代表乙個常數的方法存在乙個問題 可能被有意或...

Const 與 Readonly 使用總結

在以往的開發過程中一直使用const來定義常量,很少注意到readonly的使用,因為總感覺const的使用已經足夠了。而就在這兩天,在閱讀sqlhelper的 時,再次看到了readonly的使用,而且感覺很彆扭。如果按const來說,定義了常量後,常量在使用時是不允許再次改變的。而readonl...