C++中的const

顶层const与底层const

const用来表示常量,不可修改,在C++中,又细分了顶层const与底层const,起初接触C++,会一时不知如何区分顶层const与底层const。
下面是一个分辨顶层const与底层const的较实用办法:
1、与指针(*)和引用(&)无关的const全部都是顶层const
2、声明引用的const都是底层const
3、声明指针的const是最复杂的,定性说:在数据类型前的const是顶层const,在指针符号(*)与变量名称之间的const是底层const。下面举一例说明。
const int *const p
上面定义了一个整型数据,其中靠前的const在数据类型int之前,所以是底层const,在变量名称p之前的const则是顶层const

顶层const与底层const区别

顶层const与底层const的区别主要在执行对象拷贝,也就是给它们所生命的对象进行赋值时有区别。
其中顶层const赋值时没有影响,其所赋值的对象类型也不会影响到顶层const声明的对象。
但是,底层const就要求赋值对象与底层const声明的变量必须具有相同的底层const资格,也就是说只有底层const修饰的变量值才可以给底层const修饰的对象赋值拷贝,否则就是错误的。

注:其中const修饰的引用类型在初始化时允许任意表达式作为初始值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值