明晰指针本身为 const 与限定指针指向的数据为 const
简而言之,const 放在 * 左侧任意位置,限定了指针指向的数据不能改变;const 放在 * 的右侧,限定了指针本身不能改变。
- 指向常量的指针(pointer to const):指针指向的数据不能改变
const float* pf; // pf 指向一个 float 类型的 const 值
float const* pfc; // 与 const float* pf 相同
- 常量指针(const pointer):指针本身的值不能改变
float* const pt; // pt 是一个 const 指针
- 指针本身和其指向的数据都不能改变
const float* const ptr; // ptr 既不能指向别处,它所指向的数据也不能改变
Tips:
const float* pf 表示不能通过指针 pf 来改变其指向的数据,不代表指向的数据不可以被改变,可以通过其他方法来改变。