C 引用和指標

2021-08-17 05:12:35 字數 1684 閱讀 8515

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 將變數名作為實參和形參 這時傳給形參的是變數的值,傳遞是單向的 如果在執行函式期間形參的值發生變化,並不傳回給實參 因為在呼叫函式時,形參和實...