1.const修饰指针
int b=3;
int *a=&b;
const int *p=&b; //不可通过指针p修改变量b的值
int const *p=&b; //含义同上
int *const p=&b; //不可改变p的指向
const int *const p=&b; //既不可改变p的指向,也不可通过p修改变量的值
int const *const p=&b; //含义同上
const关键字与指针并用的含义因const与解引用符号的前后关系而不同。特别注意的是,当变量类型为const时,指针必须声明为const *型,否则编译器会报错,因为它不保证不会通过指针对变量的值进行修改。
const int b=3;
int *const p=&b; //编译器报错
2.const作为函数形参
const作为形参的好处在于,实参的类型可以是const也可以是非const;而如果是非const型形参,实参只能是非const型。
3.const修饰类成员
const修饰类的成员函数时,表明该成员不会修改成员变量的值(声明为mutable的变量除外);const还可以修饰静态成员变量。此时,必须在声明的时候给其赋初值。