引用概念
20、引用
我們知道,參數的傳遞本質是一次賦值的過程,賦值就是對內存進行拷貝,所謂的內存拷貝,是指將一塊內存上的數據複製到另一塊內存上。
b.c/C++禁止在函數調用時直接傳遞數組的內容,而是強制傳遞數組指針,而對於結構體和對象沒有這種限制,調用函數時既可以傳遞指針,也可以直接傳遞內容;但是在C++中,我們有了一種比指針更加便捷的傳遞聚合類型數據的方式,那就是引用(Reference)
c.引用是C++相對於C語言的有一個擴充,引用可以看做是數據的一個別名,通過這個別名和原來的名字都能找到這份數據。
引用類似於Windows中的快捷方式。
引用的定義方式類似於指針,只是用&取代了*,語法格式爲:
type &name = data;
type是被引用的數據的名稱
name 是引用的名稱
data 是被引用的數據
int & i = j;
引用必須在定義的同時初始化,並且以後也要從一而終,不能在引用其他數據,這有點類似於CONST變量
注意:引用在定義時需要添加& ,在使用時不能添加&,使用時添加&表示取地址符。
d.再定義或者聲明函數時,我們可以將函數的形參指定爲引用的形式,這樣在調用函數時就會將實參和形參綁定在一起,讓它們都指代同一份數據。
如此一來,如果在函數體中修改了形參的數據,那麼實參的數據也會被修改,從而擁有“在函數內部影響外部數據”的效果。
一個能夠展現按引用傳參的優勢 的列子就是交換2個數據的值。
我們知道,參數的傳遞本質是一次賦值的過程,賦值就是對內存進行拷貝,所謂的內存拷貝,是指將一塊內存上的數據複製到另一塊內存上。
b.c/C++禁止在函數調用時直接傳遞數組的內容,而是強制傳遞數組指針,而對於結構體和對象沒有這種限制,調用函數時既可以傳遞指針,也可以直接傳遞內容;但是在C++中,我們有了一種比指針更加便捷的傳遞聚合類型數據的方式,那就是引用(Reference)
c.引用是C++相對於C語言的有一個擴充,引用可以看做是數據的一個別名,通過這個別名和原來的名字都能找到這份數據。
引用類似於Windows中的快捷方式。
引用的定義方式類似於指針,只是用&取代了*,語法格式爲:
type &name = data;
type是被引用的數據的名稱
name 是引用的名稱
data 是被引用的數據
int & i = j;
引用必須在定義的同時初始化,並且以後也要從一而終,不能在引用其他數據,這有點類似於CONST變量
注意:引用在定義時需要添加& ,在使用時不能添加&,使用時添加&表示取地址符。
d.再定義或者聲明函數時,我們可以將函數的形參指定爲引用的形式,這樣在調用函數時就會將實參和形參綁定在一起,讓它們都指代同一份數據。
如此一來,如果在函數體中修改了形參的數據,那麼實參的數據也會被修改,從而擁有“在函數內部影響外部數據”的效果。
一個能夠展現按引用傳參的優勢 的列子就是交換2個數據的值。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.