1.const定义常变量,不允许修改其他值。将变量变成只读,不能改写。
eg:
int const ca=10;
ca=20;//error
ca=10;//error
int const cb;//error 局部变量默认随机值
2.基本的数据类型对const是透明的
eg;
int const ca=0;
const int cb=0;//ca和cb是等价的
const int cb=10;cb=20;//error;
3.const直接修饰他的右边,不能做左值
eg:
int *p=&a;
const int *cp=&a;
*cp=10;//error 不能做左值
cp=&b;//合法//直接右边
const int *const p4=&a;//无法使用,其中第一个const修饰的是*p4,第二个const修饰的是p4
const int *p1=&a;//该语句不能解引用
p1=&ca;
*p1=100;//error
4.权限可以等同或缩小传递,但不能扩大传递。
eg:
int a=10,b=20;
const int ca=10;
const int cb=20;
int *p1=&a;
int *p2=&ca;//error 因为p2有可能被直接赋值,从而改掉ca
const int *p3=&a;
const int *p4=&ca;///error
const int *p5=&a;
int const *p6=&ca;//error