書:C++ Primer 5th Edition 中文版
●const限定詞
○對const的參考
●指標與const
const限定詞
避免數值被人為、系統更改,所以可以使用const來解決這個問題。
只要將變數定義為const,就一定要給予初始值,初始化後就不能對值做任何修改。
程式碼:
第9行const的i初始值是k,但是k的值還是可以做更改,因為k是拷貝過去的數字,所以並不會影響到k。
第10行也是一樣的道理,num的初始值i是拷貝過去的值,你可以想成num = 42。
對const的參考
對const的參考’繫結到其他const的物件,不同的是對const的參考無法去更改所繫結的物件。
程式碼:
只有對const的參考才能繫結到const的物件。
術語解釋:
「對const的參考」簡稱為「const參考」,嚴格來說並沒有‘const參考’因為參考不是一個物件,有const與沒有const的差別在於,我們要拿這個const做什麼,而不是去更改繫結的值。
對const的參考可以繫結到非const物件、字面值、運算式。
程式碼:
跟const的參考比,一般的參考只能繫結到物件。
指標與const
跟參考一樣,必須要是const的指標才能指向const的物件,當然const的指標也可以指向非const物件。
程式碼:
指標跟參考不一樣的地方是指標是一個物件,所以可以有const指標,必須被初始化。
程式碼:
看這個宣告可以從右到左來看。
第8行最接近cur的符號是const,這代表cur是一個const物件,下一個符號是*號,也就是說cur是一個const指標,指向的型別是int。
第10行的ac也是一個const指標,指不過指向的型別是const double。
程式碼:
因為兩個都是const指標所以不能在指向別的物件,還有一個差異是在於*const前面的物件是否是const,如果不是則可以更改值,如果是則不能更改。