const关键字与指针

Posted 小清奈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了const关键字与指针相关的知识,希望对你有一定的参考价值。

const与指针在一起的几种情况。

const int *p1;        //表示p1本身不是const,指向的变量是const.
const *int p2;        //语法错误
int const *p3;        //表示p3本身不是const,指向的变量是const.
int *const p4;        //表示p4本身是const,指向的变量不是const.
const int *const p5;  //表示p4本身是const,指向的变量是const.

区分p本身是const还是指向的变量是const,一个简单的办法就是:去除掉类型,再分析。

 

例1:

const int *p1;

去掉int后就是:const *p1; 可以理解为const (*p1);就表示p1本身不是const,指向的对象是const。

 

例2:

int *const p4;

去掉int后就是:*const p4; 可以理解为* (const p1);就表示p4本身是const,指向的对象不是const。

 

最后,上面的分析方法仅仅是一种理解,在语法上是没有const *这种直接修饰的,其中" const *int p2 " 就是一个错误的例子。

 

以上是关于const关键字与指针的主要内容,如果未能解决你的问题,请参考以下文章

const关键字与数组指针

C++中的const关键字深入理解(关于引用指针顶层const)

const关键字总结

2.6 const限定符与引用指针

C++杂谈const限定符与const指针

C语言 const使用详解