您的位置:首页 > 其它

const的用法

2018-03-24 14:02 246 查看

一、基础用法:

1、const就是定义一个常变量     const int a = 10;
2、数据类型对于const是透明的(const int 等同于int const);
3、const直接修的内容不能做左值;(左值:放在=符号左边,用写权限;右值:只可读不可写)
4、const在权限传递时,只能同等或者缩小传递,不能放大传递;

二、实际应用:

int main()
{
int a = 10;//可读可写
int b = a;//a做右值
a = 100;//a做左值,左值:放在=符号左边,用写权限
//1、const定义常变量
const int ca = 100;//只读变量,不能做左值
//3、const直接修饰的内容不能做左值
//ca = 200;//error
//ca = 100;//error
//const int cb;//error
int const cc = 100;//cc和上面的ca没有区别//2、数据类型对于const 是透明的 const int 等同于int const
b = cc;
//cc = 10;//error
const int *cp1 = &a;//const直接修饰的是*cp1,所以*cp1不可做左值(及cp1不能解引用),cp1可以做左值。
cp1 = &b;//ok
//*cp1 = 20;//error
int const *cp2 = &a;//cp2等同cp1
cp2 = &b;
//*cp2 = 20;
int *const cp3 = &a;//const直接修饰的是cp3
//cp3 = &b;//error
*cp3 = 100;//ok
int const *const cp4 = &a;
//cp4 = &b;//error
//*cp4 = 20;//error

return 0;

}

//4、const权限的传递:同等或者缩小传递合法,放大传递非法(可读可写的值,既可以让它做左值也可以让它做右值;只可读不可写的值只能做右值)
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;p是一个指针变量(可读可写),ca是被const定义的常变量(可读不可写),如果将ca赋值给p,则ca就成了一个可以做左值的变量,显然ca是不能做左值的。
int const *cp1 = &a;
cp1 = &ca;//ok
int *const cp2 = &a;//const直接修饰的是cp2
//cp2 = &ca;//error,cp2不可做左值
//int *const cp3 = &ca;//error,const直接修饰的是cp3,cp3可以解引用,则ca间接做了左值

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: