int a=10
int b=a;//a为 可读
a=20;//a为 可写
左值:写数据,放在赋值符号左边。
其他情况都是右值(读数据)
const:把变量变成只读。
const int ca=10//只读
a=ca;
ca=20//error;
ca=10;//error
const int cb;//error
由此可得
1.基本数据类型对于const是透明的。
即const限制变量,不限制数据类型。(改结论不适用于指针)
2.const只能限定修饰的直接右边
const*p=&a;
即*p不能做左值
所以p=&a//ok
*p=100//error
int *const p3=&a;
p3=&b;//error
*p3=100;//ok
3.权限可以同等或缩小传递,但不能放大传递。
int a=10;
int b=20;
const int ca=10;
int *p1=&a;
const int *p3=&a;
const int *p4=&ca//ok;
int *constp5=&a;
int *const p6=&ca;//error,因为不能解引用。