概念区分:

1.顶层const:指的是const修饰的变量本身是一个常量,无法修改,指的是指针,就是 * 号的右边

2.底层const:指的是const修饰的变量所指向的对象是一个常量,指的是所指变量,就是 * 号的左边

25、C++的顶层const和底层const_整型

 

区分作用:

1.执行对象拷贝时有限制,常量的底层const不能赋值给非常量的底层const

2.使用命名的强制类型转换函数const_cast时,只能改变运算对象的底层const

 

1.int const a和const int a均表示定义常量类型a。

2.const int *a,其中a为指向int型变量的指针,const在 * 左侧,表示a指向不可变常量。(看成 const (*a),对引用加const)

3.int *const a,依旧是指针类型,表示a为指向整型数据的常指针。(看成const(a),对指针const)