一、const修饰指针
int b = 500;
1、const int * a = & b;
2、int const * a = & b;
3、int * const a = & b;
4、const int * const a = & b;
对于1和2
const 放在*左侧,就是用来修饰指针所指向的变量,即指针指向的是常量。
若a是仓库管理员,b是仓库。即仓库中的货物(*a)不允许改变。但是可修改指针指向或b的值来改变*a。
对于3
const放在*的右侧,表示管理的仓库不可改变,只能是那一个,但是仓库中的货物(*a)可以改变。同时定义时必须初始化。
对于4
表示指针本身和指向的内容均为常量。
二、放在函数前后区别
1、int GetY() const;
2、const int * GetPosition();
对于1
该函数为只读函数,不允许修改其中的数据成员的值。
对于2
修饰的是返回值,表示返回的是指针所指向值是常量。