Const的使用规则
Const:定义常变量,不能写,只能读。
1、 数据类型对于const而言是透明的。
例:
int const cfh = 100 等价于 const int cfh = 100
2、 const用于封锁直接修饰的内容,将该内容变为只读。
例:
constint cfh = 100; 只读 const 修饰cfh
cfh = 200; 错误,cfh的值不能改变。
constint *cp1 = &a; const 修饰*cp1
cp1 = &b; cp1可以修改地址。
*cp1 = 200; *cp1无法修改。
int *const cp3 = &a; const 修饰cp3
cp3 = &b; 错误,cp3无法作为左值,无法修改。
*cp3 = 200; 正确。
int const *const ccp = &a;
ccp = &b; 错误,ccp是只读,无法修改
*ccp = 100; 错误,*ccp无法作为左值。
3、 权限只能同等传递或者缩小传递。
int a = 10; 有读权限和写权限
int b = 20; 有读权限和写权限
const int ca = 10; 只能读,不能写
const int cb = 20; 只能读,不能写
int *p = &a; 正确
p = &ca; 错误,p有读写的权限,但ca只有读权限,不能写。
const int *cp1 = &a; 正确,将a的地址给cp1,两者都只有读权限
cp1 = &b; 正确,const 修饰*cp1
cp1 = &ca; 正确,const 修饰*cp1
const int *cp2 = &ca; 正确,两者都只有读权限。
int *const cp4 = &ca; 错误,*cp3具有读写权限,ca只有读权限。