c++ | const的用法
阿新 • • 發佈:2021-02-19
const
const的四種用法
const修飾變數
const修飾變數,使得變數不可修改。
const int a = 1;
const修飾指標
const修飾指標分為三種情況:
- 常量指標(pointer to const):即指向常數的指標,指向的值不可更改,但是地址可以更改。
int a = 1;
int b = 2;
const int *p = &a;
p = &b;
當指標p嘗試更改其指向的值時,報錯:
- 指標常量(const pointer):即不可更改地址的指標,但是指標所指向的值可以更改。值得注意的是,指標常量的用法類似於c++的引用,不可更改地址。
int a = 1;
int const *p = &a;
*p = 2;
當嘗試更改地址時,會報錯:
- const修飾指標以及指標指向的常量:類似於c++的常量引用,
//const修飾指標並且修飾指標型別時,定義為指標常量指向常量,即不僅指標地址不可更改,指標的值也不可更改。*p4,p4都是read-only
const int* const p4 = &b;
const修飾引用
- 常量引用(reference to const):指向常量的引用,指向的值不可更改。
const int a = 1;
const int &p = a;
- 沒有引用常量,因為引用本身就是const to reference,即地址不可更改。
const修飾函式
- 修飾返回值
即返回值是不可更改的常量。
const int function(){};
- 修飾引數
即引數是不可更改常量。
int function(const int val){}