c指针之const && *

一、Bjarne在他的C++书中讲遇到*请念“pointer to”,然后按此法把一个声明从右往左读。比如:

char ** p1;

//    p1 is a (pointer to pointer to char)

const char **p2;

//    p2 is a (pointer to pointer to const char),说明**p2 不能更改,也可以直接看const 修饰的是char类型和**p2变量;

char * const * p3;

//    p3 is a (pointer to const pointer to char),说明*p3不能更改,也可以直接看const修饰的是 *p3;

const char * const * p4;

//    p4 is a (pointer to const pointer to const char),说明*p4和**p4都不能更改,也可以直接看const修饰谁,有两处,第一处const修饰的是char类型的 * const * p4变量,化简就是const修饰的是**p4,第二处const修饰的是*p4,说明*p4和**p4都不能更改。

char ** const p5;

// p5 is a (const pointer to pointer to char),说明p5本身不能更改,也可以直接查看const修饰的是p5。

const char ** const p6;

// p6 is a (const pointer to pointer to const char),说明p6和**p6不能更改,也可以直接查看const修饰的是p6和**p6

char * const * const p7;

// p7 is a (const pointer to const pointer to char),说明p7和*p7不能更改,也可以直接查看const修饰的是p7和*p7

const char * const * const p8;

// p8 is a (const pointer to const pointer to const char),说明p8和*p8和**p8都不能更改,也可以直接查看const修饰的是p8和*p8和**p8

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容