首页 > 其他 > 详细

顶层const和底层const

时间:2018-09-12 22:29:21      阅读:202      评论:0      收藏:0      [点我收藏+]

总结:

指向常量的指针(底层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

原文:https://www.cnblogs.com/ymd12103410/p/9637768.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!