const和变量
不能改变变量的值
const int a = 8;
a = 10; //错误
const和指针
常量指针:不能通过指针修改所指向变量的值。但是指针可以指向别的变量。
int a = 8;
const int *p = &a;
*p = 20; //错误
int b = 20;
p = &b;
指针常量:不能存在新的地址,不能指向别的变量。但是可以通过修改所指变量的值。
int a = 8;
int *const p = &a;
*p = 20;
int b = 20;
p = &b; //错误
const和函数
const int func(const int a) const
- 修饰返回值
const int func()
不能修改返回值 - 修饰函数形参
int func(const int a)
不能修改形参a - 修饰类的成员函数
int func() const
函数体内不能修改成员函数的值
const和对象
不能改变对象的值,和const修饰变量类似,即不能调用对象里修改变量的成员函数,只能调用只读函数(const函数,例如int func() const)