const的用法
1、定义常变量 const int a = 10;
2、数据类型对于const 是透明的 const int 等同于int const
3、const直接修饰的内容不能做左值
int main()
{
int a = 10;//可读可写
int b = a;//a做右值
a = 100;//a做左值,左值:放在=符号左边,用写权限
const int ca = 100;//只读变量,不能做左值
//ca = 200;//error
//ca = 100;//error
//const int cb;//error
int const cc = 100;//cc和上面的ca没有区别
b = cc;
//cc = 10;//error
const int *cp1 = &a;//int const *cp1 = &a;
cp1 = &b;//ok
//*cp1 = 20;//error
int const *cp2 = &a;//cp2等同cp1
cp2 = &b;
//*cp2 = 20;
int *const cp3 = &a;
//cp3 = &b;//error
*cp3 = 100;//ok
int const *const cp4 = &a;
//cp4 = &b;//error
//*cp4 = 20;//error
return 0;
1、定义常变量 const int a = 10;
2、数据类型对于const 是透明的 const int 等同于int const
3、const直接修饰的内容不能做左值
int main()
{
int a = 10;//可读可写
int b = a;//a做右值
a = 100;//a做左值,左值:放在=符号左边,用写权限
const int ca = 100;//只读变量,不能做左值
//ca = 200;//error
//ca = 100;//error
//const int cb;//error
int const cc = 100;//cc和上面的ca没有区别
b = cc;
//cc = 10;//error
const int *cp1 = &a;//int const *cp1 = &a;
cp1 = &b;//ok
//*cp1 = 20;//error
int const *cp2 = &a;//cp2等同cp1
cp2 = &b;
//*cp2 = 20;
int *const cp3 = &a;
//cp3 = &b;//error
*cp3 = 100;//ok
int const *const cp4 = &a;
//cp4 = &b;//error
//*cp4 = 20;//error
return 0;
}
const 的用法4
权限的传递:同等或者缩小传递合法,放大传递非法
int main()
{
int a =10;//rw
int b = 20;//rw
int const ca = 100;//r
int const cb = 200;//r
int *p = &a;
//p = &ca;//error,*p = 100;
int const *cp1 = &a;
cp1 = &ca;//ok
int *const cp2 = &a;
//cp2 = &ca;//error
//int *const cp3 = &ca;//error
return 0;
}