Const的幾大用法(常用)

2021-10-08 15:38:29 字數 1764 閱讀 2029

今天來看看const的用法。

第一:常變數

變數用const修飾,其值不得被改變。任何改變此變數的**都會產生編譯錯誤。const加在資料型別前後均可。

例如:

void main(void)

第二:常指標

const跟指標一起使用的時候有兩種方法。

const可用來限制指標不可變。也就是說指標指向的記憶體位址不可變,但可以隨意改變該位址指向的記憶體的內容。

int main(void) 

const也可用來限制指標指向的記憶體不可變,但指標指向的記憶體位址可變。

int main(void)

看完上面的兩個例子,是不是糊塗了?告訴你乙個訣竅,

在第乙個例子中,const用來修飾指標j,j不可變(也就是指向int變數的常指標);

第二個例子中,const用來修飾*j,*j不可變(也就是指向int常量的指標)。

這兩種方式可以組合起來使用,使指標和記憶體內容都不可變。

int main(void)

第三:const和引用

引用實際上就是變數的別名,這裡有幾條規則:

宣告變數時必須初始化

一經初始化,引用不能在指向其它變數。

任何對引用的改變都將改變原變數。

引用和變數本身指向同一記憶體位址。

下面的例子演示了以上的規則:

void main(void)

用const修飾引用,使應用不可修改,但這並不耽誤引用反映任何對變數的修改。const加在資料型別前後均可。

例如:

void main(void)

第四:const和成員函式

宣告成員函式時,末尾加const修飾,表示在成員函式內不得改變該物件的任何資料。這種模式常被用來表示物件資料唯讀的訪問模式。例如:

class myclass

~myclass()

char valueat(int pos) const //const method is an accessor method

}

第五:const和過載

過載函式的時候也可以使用const,考慮下面的**:

class myclass

~myclass()

char valueat(int pos) const //const method is an accessor method

char& valueat(int pos) //通過返回引用設定記憶體內容

}

在上面的例子中,valueat是被過載的。const實際上是函式引數的一部分,在第乙個成員函式中它限制這個函式不能改變物件的資料,而第二個則沒有。這個例子只是用來說明const可以用來過載函式,沒有什麼實用意義。

class myclass

~myclass()

char& operator(int pos) //通過返回引用可用來更改記憶體內容

} void main(void)

Const與Const的用法

const 是c 中常用的型別修飾符,常型別是指使用型別修飾符const說明的型別,常 型別的變數或物件的值是不能被更新的。const的作用 1 可以定義常量 即const int a 5 a就是乙個被const修飾的常量,它在程式執行期間是無法被改變的!2 保護被修飾的東西 例如乙個函式的首部為v...

const的一些常用用法

const的一些常用用法 一 類中成員函式後面加上const void function const 類中的成員函式 或者在類中先宣告,然後在類外定義,如下所示 void function const void a function const 對上述相關函式做如下三點說明 首先,此函式不能對類中的...

const的常見用法

const用法主要是防止定義的物件再次被修改,定義物件變數時要初始化變數 下面我就介紹一下幾種常見的用法 1.用於定義常量變數,這樣這個變數在後面就不可以再被修改 const int val 10 val 20 錯誤,不可被修改 2.保護傳參時引數不被修改,如果使用引用傳遞引數或按位址傳遞引數給乙個...