C++关键字-const
const为常量限定符。
const修饰基本数据类型
const int a = 10;
int const b = 20
上面两种写法是等价的。
const修饰指针
int a = 1;
const int* p1 = &a; // p1指向常量
int const *p2 = &a; // p2指向常量
int* const p3 = &a; // p3为常量
const int* const p4 = &a; // p4为常量,且指向常量
- 如果const位于星号
*
的左侧,则const就是用来修饰指针所指向的变量,即指针指向常量; - 如果const位于星号
*
的右侧,const就是修饰指针本身,即指针本身是常量。
const修饰引用
int x = 10;
int const &a=x;
const int &a=x;
上面两种写法是等价的。
const修饰函数
const可修饰函数的返回值、函数的形参,用来限定返回值和形参为常量。
const修饰成员函数
const修改成员函数表示该成员函数不允许修改函数成员变量。
class Foo {
public:
int foo() const {
// value = 10; // error
return value;
}
private:
int value = 5;
};