0
点赞
收藏
分享

微信扫一扫

关于顶层const和底层const的区别

Xin_So 2022-01-05 阅读 61

C++ primer中解释道:

顶层const表示指针本身是个常量。

底层const表示指针所指的对象是一个常量。

const int ci = 42;        //不能改变p1的值,这是一个顶层const
int *const p1 = 45;       //不能改变p1的值,这是一个顶层const
const int *p2 =&ci;       //允许改变p2的值,这是一个底层const 

如何区别顶层和底层 const 呢?

在*左边的const为底层const,而在*右边的const则为顶层const。

如何解读const int *p2和int *const p1呢?

        第一个,从右往左看,p2是一个int型的指针,而指针中存放着一个常量,所以p2是一个指着常量的指针,为底层const。

        第二个,从右往左看,p1是一个常量指针,而指针是一个int型,所以p1是本身是一个常量指针,为顶层const。

举报

相关推荐

0 条评论