c++ 頂層const與底層const

     底層const是表明對象自己是一個常量(不可改變);ios

     頂層const是表明指針的值是一個常量,而指針的值(即對象的地址)的內容能夠改變(指向的不可改變);spa

 1 #include <iostream>
 2 
 3 int main()
 4 {
 5     int i=0;
 6     int* const p1=&i;   //-----不能改變p1的值,這是一個頂層const
 7     const int b=i;      //-----不能改變b的值,這是一個頂層const(通常變量前const都是頂層const)
 8     const int* p2=&b;   //-----能夠改變p2的值,這是一個底層const(對象是個const,因此能夠底層指向頂層)
 9     const int*const p3=p2; //--靠右邊的是頂層const,靠左的事底層const;
10     const int& some=i;   //--- 用於聲明引用的,都是底層const;
11 }

    當執行對象的拷貝操做時,常量時頂層const仍是底層const時就區別明顯,其中頂層const不受什麼影響;指針

 

    底層const執行拷貝是2對象的類型必須同樣,或者可轉換,通常很是量能夠轉換成常量;code

相關文章
相關標籤/搜索