顶层const与底层const
定义
顶层 const:表示指针本身是个常量,更简单的说顶层 const 作用对对象本身,表示对象自身是一个常量。
底层 const:表示指针所指向的对象是个常量。
分析
我在想,作者在引入这个概念时,是不是在想了这样一幅图:pointer 在相对上层,被指向的变量在下层,通过层次的引入来区分 const 的作用对象。
顶层 const 指在图中顶端的修饰指针本身的 const,底层 const 指在图中最底层的修饰指针所指向变量的 const。
const 的影响
int const * const p; ^ ^ 1 2
- 底层 const(上述代码中 1 的位置)主要影响的是指向的对象
- 底层 const 表示为不能修改所指向的对象的值,即,所指向的对象是一个常量。
- 顶层 const(上述代码中 2 的位置)主要影响的是对象本身
- 表示对象本身不能被修改,即,对象(指针)本身是个常量,但是可以修改指针所指向的对象的值。