最近在看《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啦~
欢迎点赞,收藏,评论,您的鼓励就是我创作的最大动力!(๑╹◡╹)ノ"""