C++的顶层const和底层const
概念区分
顶层const:指的是const修饰的变量本身是一个常量,无法修改,指的是指针,就是 * 号的右边
底层const:指的是const修饰的变量所指向的对象是一个常量,指的是所指变量,就是 * 号的左边
举个例子

区分作用
执行对象拷贝时有限制,常量的底层const不能赋值给非常量的底层const
使用命名的强制类型转换函数const_cast时,只能改变运算对象的底层const

int const a和const int a均表示定义常量类型a。
const int *a,其中a为指向int型变量的指针,const在 * 左侧,表示a指向不可变常量。(看成const (*a),对引用加const)
int *const a,依旧是指针类型,表示a为指向整型数据的常指针。(看成const(a),对指针const)
今天的内容就到这里啦!