- const
(1)const 变量
b=6;
const int a=b;
int const a=b;两者一样,换顺序无所谓。
说明a是不可修改的常量,必须初始化【a=3 error,提示:表达式必须是可修改的左值】
(2)const指针
int b=10;
①const int *a=&b;
int const *a=&b;都是常量指针,可以看成const (*a)即指针指向的内容为常量,不可修改: *a=9;错误
注:可以不初始化,但可以修改b的值进行修改 b=20; 此时*a=20
②int * const a=&b;指针常量,看成*(const a),即指针本身为常量,不能指向其他地址
注:必须初始化,int * const a;错误
a++;错误不能再指向其他地址
(3)const成员函数
classA{ public: f(int ) const;//表示A的this指针是常量 =const A* const this }; f函数有两个参数,一个是int,一个是隐藏的this指针,因为this是隐藏的所以在函数后面加上const表示将this声明为const类型