1. 程式人生 > >頂層const和底層const

頂層const和底層const

pre 指針 uri con details code 時也 通過 sdn

總結:

指向常量的指針(底層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