const和指针搭配时的作用范围

来源:互联网 发布:mac win10双系统切换 编辑:程序博客网 时间:2024/05/17 03:33

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; 都不可以修改。

0 0
原创粉丝点击