顶层const与底层const的区别

1 顶层const表示指针本身是常量,底层const表示指针所指对象为常量;
2 顶层const可以表示任意的对象是常量包括任一类型数据都适用,底层const指的是指针,引用等复合类型;
3声明类const都是底层const;
4顶层const的拷贝是不受限制的,底层const需要相同的const类型或者可以从非常量拷贝给常量;

练习2.4.3

const int v2=0;//顶层const,v2本身为一个常量
int v1=v2;//v1并非常量,只是将v2的值赋予了v1,v1依然是变量,并且顶层const可以给变 量        赋 值;
int *p1=&v1,&r1=v1;
const int *p2=&v2,*const p3=&v1,&r2=v2;//第一个const为底层const,因为其均是指的指针所指对象为常量;*const为顶层const,其是指p3为常量指针;r2是一个引用,声明引用的都是底层const,因为引用被相当于小号,其实质是限制v2为常量,所以其为底层const;
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值