顶层const和底层const

Posted ymd12103410

tags:

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

总结:

指向常量的指针(底层const):不能通过解引用符来改变它所指向的内容
不代表它所指向的内容一定是常量

int num_a=1;

int const *pa=&num_a;

指针常量(顶层const):代表指针本身是常量,声明时必须初始化,之后它存储的地址值就不能再改变

常量的底层const不能赋值给非常量的底层const,拷贝时,拷入与拷出的对象必须具有相同的底层const资格,底层const只能给底层const拷贝,或者两个对象的数据类型能转换,非常量的可以转换成常量

加了引用就是底层const,不管先前是不是顶层const,只要等式右边加上引用符号,引用一个原本是顶层const的对象,此时也变成底层const

可以利用const_cast去掉底层const的const性质,来通过指针解引用修改其值

顶层const可以表示任意的对象是常量

底层const与指针和引用类型有关

拷贝操作与顶层const无关

参考:https://blog.csdn.net/qq_19528953/article/details/50922303


以上是关于顶层const和底层const的主要内容,如果未能解决你的问题,请参考以下文章

顶层const和底层const

const关键字总结

细节问题

const

const浅析

C++中常量引用指针常量指针指针常量常量引用顶层常量与底层常量