書:C++ Primer 5th Edition 中文版

image

●const限定詞

○對const的參考

●指標與const

 

const限定詞

避免數值被人為、系統更改,所以可以使用const來解決這個問題。

 

只要將變數定義為const,就一定要給予初始值,初始化後就不能對值做任何修改。

 

程式碼:

image

 

image

第9consti初始值是k,但是k的值還是可以做更改,因為k是拷貝過去的數字,所以並不會影響到k。

第10行也是一樣的道理,num初始i是拷貝過去的值,你可以想num = 42。

 

對const的參考

對const的參考繫結到其他const的物件,不同的是對const的參考無法去更改所繫結的物件。

 

程式碼:

image

只有對const的參考才能繫結到const的物件。

 

術語解釋:

「對const的參考」簡稱為「const參考」,嚴格來說並沒有const參考因為參考不是一個物件,有const與沒有const的差別在於,我們要拿這個const做什麼,而不是去更改繫結的值。

 

對const的參考可以繫結到非const物件、字面值、運算式。

 

程式碼:

image

跟const的參考比,一般的參考只能繫結到物件。

 

指標與const

跟參考一樣,必須要是const的指標才能指向const的物件,當然const的指標也可以指向非const物件。

 

程式碼:

image

指標跟參考不一樣的地方是指標是一個物件,所以可以有const指標,必須被初始化。

 

程式碼:

image

看這個宣告可以從右到左來看。

 

第8行最接近cur的符號是const,這代表cur是一個const物件,下一個符號是*號,也就是說cur是一個const指標,指向的型別是int。

 

第10行的ac也是一個const指標,指不過指向的型別是const double。

 

程式碼:

image

 

image

 

因為兩個都是const指標所以不能在指向別的物件,還有一個差異是在於*const前面的物件是否是const,如果不是則可以更改值,如果是則不能更改。

  

 

arrow
arrow
    創作者介紹
    創作者 讀書小天地 的頭像
    讀書小天地

    書籍分享天地

    讀書小天地 發表在 痞客邦 留言(0) 人氣()