84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
怎么感觉顶层const跟底层const的意思都是定义了就不能改了。 比如 const in i =1; 跟 int const i =1;有啥区别
走同样的路,发现不同的人生
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就不會改變變數的值了,而其他人亂動我也沒辦法。 一些淺見,請多指教。
const
int *const p = &i;
i = 9;
const int *p = &i;
p
const int *p = &j;
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
就不會改變變數的值了,而其他人亂動我也沒辦法。一些淺見,請多指教。