C++中的const限定符(4)——顶层const和底层const

1、顶层const表示对象本身是常量,这一点对任何数据类型都适用。对于指针,它表示指针本身是一个常量(常量指针)。

2、底层const与指针和引用等复合类型的基本类型部分有关。对于指针,它表示指针所指的对象是一个常量(指针常量)。声明引用的const都是底层const。

3、当执行拷贝操作时,,常量是顶层const还是底层const区别明显。

   3.1、顶层const在拷贝时没有什么限制。因为拷贝操作并不会改变被拷贝对象的值。因此,拷入和拷出的对象是否是常量都没什么影响。

   3.2、对于底层const,当执行拷贝操作时,拷入和拷出的对象必须具有相同的底层const资格,或者两个对象的数据必须能够转换。一般来说非常量可以转换成常量,反之则不行。

int i=5;

const int *p1=&i;                   //p1有底层const定义

int *p2=p1;                           //错误p2,没有底层const资格

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值