> 文章列表 > C++的顶层const和底层const的判断方法

C++的顶层const和底层const的判断方法

C++的顶层const和底层const的判断方法

最近在看《C++ Priner》,里面讲到顶层const,和底层const时,书里没有过多的解析,有点难懂。

后来研究了数篇文章后,明白了它的原理:

顶层const : 指针本身是个常量

底层const : 指针所指的对象是一个常量

根据原理,我总结出了一个对小白来说非常简单的判断方法: 

只需要判断是【* const  】 还是 【 const * 】:

【* const  】: 星号在前,就是顶层const
【  const *】: 星号在后,就是底层const

//【* const  】:顶层const
//【  const *】: 底层constint *const p1 = &i; //这是一个顶层const
const int *p2 = &ci; //这是一个底层const
const int *const p3=p2; //这里有两个const,第一个const是底层const,第二个const是顶层const

除此之外,还有两种没有 * 号的情况,也很简单:

  • 什么符号没有就是顶层const:
const int ci=42; //这是一个顶层const
  • &声明引用的就是底层const:
const int &r = ci; //用于声明引用的const都是底层cosnt

下次碰到就可以快速推出是顶层const还是底层cosnt啦~

欢迎点赞,收藏,评论,您的鼓励就是我创作的最大动力!(๑╹◡╹)ノ"""