顶层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的主要内容,如果未能解决你的问题,请参考以下文章