c++ - 顶层const跟底层const有啥区别
怪我咯
怪我咯 2017-04-17 14:53:39
0
2
552

怎么感觉顶层const跟底层const的意思都是定义了就不能改了。 比如 const in i =1; 跟 int const i =1;有啥区别

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回覆(2)
迷茫

int const i和const int i沒差別,都表示i是常數。 const int p和int const p也一樣,表示p是常數,但p是變數;int const p跟他們不一樣,表示p是常數,*p是變數。

巴扎黑

頂層const和底層的const主要是針對指針來說的。
所謂頂層const是指標的不變性,即指標指向的位置不變! int *const p = &i; 則p這個值不會再變,在這裡你可以用其他方式改變i這個值,比如說你可以直接賦值i = 9;。這樣const也拿你沒辦法。
而底層const則是指標指向的物件或內建型別不變,const int *p = &i;則這裡的i的值就不許再變了,但是你還是可以改變p,比如說你可以這樣const int *p = &j;
我理解的const是一種約定,是說我用了const就不會改變變數的值了,而其他人亂動我也沒辦法。
一些淺見,請多指教。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!