const和引用 測試小程式

2021-06-18 14:38:01 字數 628 閱讀 7366

程式一:

#include using namespace std;

int change(int& num)

int main()

程式出錯,顯示num不能被更改,這也好理解,因為num使用了const修飾,所以不能被改變。那問題就來了:

採用引用是希望改變形參,而const要求不能改變,這不是矛盾了嗎?,為什麼要用cosnt和引用結合使用呢?因為結合使用有其他的好處。

這樣的乙個

const

引用傳遞和最普通的函式按值傳遞的效果是一模一樣的

,他禁止對引用的物件的一切修改

,唯一不同的是按值傳遞會先建立乙個類物件的副本

, 然後傳遞過去

,而它直接傳遞位址

,所以這種傳遞比按值傳遞更有效

.另外只有引用的

const

傳遞可以傳遞乙個臨時物件

,因為臨時物件都是

const

屬性, 

且是不可見的

,他短時間存在乙個區域性域中

,所以不能使用指標

,只有引用的

const

傳遞能夠捕捉到這個傢伙.

該段文字來自:

引用 const引用和非const引用

引用構造了物件的乙個同義詞,是c 物件的另乙個名字。在實際程式中,引用的主要作用是作函式的形參。引用是一種復合型別1,它通過在變數名前新增 來定義。在使用引用的情況下,每一種引用型別都關聯到某一其他型別。c 不能定義引用型別的引用,但是可以定義任何其他型別的引用。int a 100 int refa...

指標和引用,const 指標和const 引用

指標和引用是在使用中經常弄混淆的兩個概念。引用 reference 為物件起了另外乙個名字,用符號 表示。name,例如 int i 1024 int ref i 一般在初始化變數時,初始值會被拷貝到新建立的物件中,然而定義引用時,程式把引用和它的初始值繫結 bind 在一起,而不是將初始值拷貝給引...

const引用和普通引用

一 引用所繫結的型別和所引用的物件型別需嚴格匹配。除了兩個例外 1 普通引用必須繫結到物件,不能繫結到常量 int a 3 錯誤 2 const引用 1 初始化const引用允許用任意表示式,只要該表示式的結果能轉化為引用型別即可 2 允許乙個const引用繫結非常量物件,字面值,甚至是一般表示式 ...