const的使用:
作用:定义常变量
规则如下:
1.基本的数据类型对于const是透明的
例:int const ca = 0; const int ca = 0;//ca和cb是等价的
2.cosnt限定它的直接右边
例:const int*cp = &a;cp = 100;(X)
因为const限定它的直接右边,int对于const透明,所以cp的值不能被修改
int *const cp2 = &a;cp2 = &b;(X)
同理,const限定 cp2,所以cp2的值不能被修改
int *const cp2 = &a;*cp2 = 100;(√)
const限定cp2,所以 *cp2的值可以被修改
3.权限可以缩小或者同等传递,但不能被放大
例:int a = 10;
a = 20;
int b = 20;
int const ca = 10;
//ca = 20;//error
//ca = 10;//error
//int const cb;//error
const int cb = 10;//完全等同ca
//cb = 20;//error
int * p = &a;
const int *cp = &a;
//*cp = 100;//error//直接右边不能做左值
cp = &b;
int *const cp2 = &a;
//cp2 = &b;//error,直接右边不能做左值
*cp2 = 100;
int const *cp3 = &a;//cp3等价cp
cp3 = &b;
//*cp3 = 100;//error
const int *const cp4 = &a;
//cp4 = &b;
//*cp4 = 100;
这两个值都不能改变