const其实就是为了保证它所描述的变量不能被修改。
直接用代码说明,以下代码仅仅为了证明const和指针在一起时候的作用范围:
1.*p
float *p;
p = 3;
*p = (float*)3;
const float* p;
*p = 3; //这样不行
p = new float[3]; //这样可以
证明const type * 是指针能修改,指向的内存不可以修改
const float* const p = nullptr;
p = new float[2]; //不行
p = 3; //不行
证明const type const* 是指针不能修改,指向的内存不可以修改
2.**p
const float **p;
p = nullptr; //可以
p[0] = nullptr; //可以
*p = nullptr; //可以
**p = nullptr; //不可以
证明指针可以修改,指向的内存不可以修改
const float* const *p;
p = nullptr; //可以
p[0] = nullptr; //不可以
*p = nullptr; //不可以
**p = nullptr; //不可以
二级指针可以修改,指向的内存不可以修改,一级指针不可以修改。
const float* const * const p; 都不可以修改。