1.引用:引用是給乙個已經定義好的變數賦予乙個別名;
2.引用的格式:資料型別& 引用別名=已定義變數名;引用的位址和已定義變數名的位址一樣。
3.引用的特點及規則:
(1)乙個變數可取多個別名;
(2)引用的變數必須初始化;
(3)引用只能在初始化的時候引用一次,不能改變為再引用其他的變數;
(4)只有常引用才能引用常量,原因:非常量引用的初始值必須為左值(
左值就是能取位址,右值就是只能取值的)
;格式為:const 型別&+別名=目標變數名;
(5)當引用的等式左右兩邊的資料型別不一樣時,需要在左邊加上const修飾。原因:右邊賦值左邊時需要產生乙個具有常量的臨時變數;而這個臨時變數為右值。
#include
#include
using namespace std;
int main()
4.引用做引數和值,指標做引數;
引用作為函式的引數可以實現兩個變數之間的值的互換;在需要用結構體作為引數時,用引用也可避免使用指標作為引數時所帶來的問題;當不希望函式執行過程中,傳遞的引數不被某一不正當操作二改變,可以使用const 別名傳遞;傳值做引數時,需要產生臨時變數接受實參的值,而且不能改變原來變數的值。
void swap(int& a,int& b)
void swap(int *a,int *b)
5.引用做返回值和值做返回值
引用做返回值時,呼叫程式直接訪問變數;值做返回值時,值將儲存在乙個臨時區域,呼叫程式訪問臨時區域;
int& add(int a,int b)
6.彙編看傳值返回和引用返回
注意事項:不返回臨時變數的引用
7.引用和指標的區別:
(1)引用在一開始就被初始化而且再也不能改變,指標可以改變;
(2)引用的變數不能為空,而指標可以為空;
(3)3. sizeof指標物件和引用物件的意義不一樣。sizeof引用得到的是所指向的變數的大小,而sizeof指標是物件位址的大小。
4. 指標和引用自增(++)自減(--)意義不一樣。
C 指標和引用
在深入介紹之前我們首先來看一下指標和引用的定義 指標和引用的區別,然後分別針對指標和引用展開討論,深入細節為何有這些差異。指標和引用的定義,下面用通俗易懂的話來概述一下 而宣告指標是可以不指向任何物件,也正是因為這個原因,使用指標之前必須做判空操作,而引用就不必。其次,引用不可以改變指向,對乙個物件...
C 引用和指標
引用和指標看上去差不多,看上去差不多,其實男寶寶和女寶寶是不一樣的 用起來還是有一定差距。本人菜鳥僅將遇到的問題記錄備案,以便日後翻查 ptrfunc.h ifndef ptrfunc h define ptrfunc h typedef int func int,int struct aa end...
C 指標和引用
有了變數名,為什麼還需要乙個別名呢?c 之所以增加引用型別,主要是把它作為函式引數,以擴充函式傳遞資料的功能 到目前為止我們介紹過函式引數傳遞的兩種情況 1 將變數名作為實參和形參 這時傳給形參的是變數的值,傳遞是單向的 如果在執行函式期間形參的值發生變化,並不傳回給實參 因為在呼叫函式時,形參和實...