顶层const

说到顶层const(top-level const)在c++ primer 第五版里面有介绍到

用名词顶层const(top-level const)表示指针本身是个常量,而用底层const(low-level const)表示指针所指的对象是一个常量

int *const p1 = &a                   //是一个顶层const,不能改变指针p1的值,也就是说p1这一辈子都指向a
const int *p1 = &a                   //一个底层const,所指的对象是一个常量

但是实际上定义这样一个概念反倒让人觉得迷惑,所以最好的办法就是从右往左读这个表达式

int *const p1读作p1是一个常量指针指向int类型
const int *p1读作p1是一个指针指向一个常量int类型

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • C++中顶层const与底层const在使用中区分还是挺大的,比较容易搞混,所以单独总结一下。 1.什么是顶层co...
    GThyton阅读 4,098评论 0 1
  • 指针是一个对象,占据内存空间,而指针本身可以指向另一个对象,这就导致指针是常量和指针指向的对象是常量是两个不同的概...
    尾蝉阅读 682评论 0 2
  • 一、概述 用const限定来限定值不能被改变的变量。一个变量被const限定后,值不能被改变,只能在con...
    王一百阅读 648评论 2 3
  • 闲来无事,开启手机app王者荣耀。满眼的好友,难道他们也无事。 等待开始,好了依然选我的黄忠。等待开始,‘我走中路...
    阎冬阅读 352评论 0 0
  • 壹 我很想要很纯粹的表达自己,因为从来没有机会,也没有人懂得,所以除了以前在学校这个乌托邦的环境,其他地方我从来没...
    知更鸟Robin阅读 438评论 0 0