const的用法

const的用法
1、定义常变量
      const 定义的常变量不能做左值,不能被修改
eg:
  int main()
{
    int a=10;//a可读可写
    int b=a;//a做右值
      a=100;//a做左值, 左值:放在“=”符号左边,用写权限
    const int ca =100;//ca为只读变量,不能做左值
    ca=200;//错误的
    const int cb;//也是错误的
}
2、数据类型对const是透明的
     const int =int const
eg:
     int const cc=100;// cc与上边的ca没有什么区别
     const int*cp=&a;
           cp=&b;//正确
          *cp=20;//错误的,原因 const 修饰的指针类型*cp,所以*cp不能做左值
3、const直接修饰的内容,不能做左值
eg:
     int*const cp1=&a;
     cp1=&b;//错误
    *cp1=20;//正确
  (原因是const直接修饰的cp1,所以cp1不能做左值)
     int const*const cp2=&a;
          cp2=&b//错误的 const 修饰了cp2,cp2不能做左值,不能被修改
4、权限的传递:同等或缩小传递合法,放大传递非法
eg:
     int main()
{
    int a=10;//可读可写
    int b=20;//可读可写
    int const ca = 100;//可读
    int const cb = 200;//可读
    int*p=&a;//*p和&a权限均为可读可写,同等可以赋值
    //p=&ca;//错误的,如果赋值ca给p那么p就有可能改变ca的权限
   int const*cp1=&a;//a无任何的限制 
        cp1=&ca;//cp1被const封锁了解引用的权限,ca只可读,可以赋值操作
   int *const cp2=&a;
        cp2=&ca;//错误,cp2可解引用,ca只可读,不能赋值
    int*const cp3=&ca;//错误的,cp3可解引用,ca只可读

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值