首頁  >  問答  >  主體

c++ - 顶层const跟底层const有啥区别

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

怪我咯怪我咯2714 天前528

全部回覆(2)我來回復

  • 迷茫

    迷茫2017-04-17 14:55:39

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

    回覆
    0
  • 巴扎黑

    巴扎黑2017-04-17 14:55:39

    頂層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就不會改變變數的值了,而其他人亂動我也沒辦法。
    一些淺見,請多指教。

    回覆
    0
  • 取消回覆