怎么感觉顶层const跟底层const的意思都是定义了就不能改了。 比如 const in i =1; 跟 int const i =1;有啥区别
迷茫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是變數。
巴扎黑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
就不會改變變數的值了,而其他人亂動我也沒辦法。
一些淺見,請多指教。