const是一个关键字,加在变量前,将其声明为常量,简单来说,就是不希望该变量的值发生改变。因此,它必须在声明该变量时就赋初值。
const与指针
如果const加在*符号前面,如:
const int *p = &a;或 int const *p = &a;
则称p为常量指针,其本质都是const修饰 *p,因此不可通过p改变a中的值,但是p可以指向其他地址。
如果const加在符号后面,如:*
int* const p = &a;
则称p为指针常量,因此p指向的地址值不可改变,但可用*p改变a中的值。
如:const int * const p = &a;
则p指向地址值不可改变,也不可用*p改变a中的值。
const修饰引用形参,
如 int a(const int& a);
意思为不希望a改变实参的值。
const修饰成员函数,在C++中成员函数会有一个默认的形参为this,是由编译器来实现的,不需要我们来写。
所以当你设计函数时不希望this指针所指向的数据发生改变 应做如下处理:
int a(const int& b)const{ … }