C 指標和引用的區別

2021-10-04 13:23:37 字數 1731 閱讀 3651

源**

#include

using

namespace std;

void

maopaporder

(int arr)

}}}void

ordermethod1

(int a,

int b,

int c)

;maopaporder

(arr)

; a = arr[0]

; b = arr[1]

; c = arr[2]

; cout <<

"inside int type : "

<< a <<

" "<< b <<

" "<< c << endl;

}void

ordermethod2

(int

* a,

int* b,

int* c)

;maopaporder

(arr)

;*a = arr[0]

;*b = arr[1]

;*c = arr[2]

; cout <<

"inside int* type : "

<<

*a <<

" "<<

*b <<

" "<<

*c << endl;

}void

ordermethod3

(int

& x,

int& y,

int& z)

;maopaporder

(arr)

; x = arr[0]

; y = arr[1]

; z = arr[2]

; cout <<

"inside int& type : "

<< x <<

" "<< y <<

" "<< z << endl;

}int

main()

輸出結果:指標:

引用:

從定義上講

指標是乙個變數,變數中儲存的是某個物件的位址,指向記憶體中的某個儲存單元。

引用實際上與它所繫結的變數共用一塊記憶體空間,是它繫結的那個變數的乙個別名。

從使用規則上講

指標可以有多級指標,而引用只能有一級

指標可以不初始化,指向null,而引用在使用時必須初始化。

從作為函式引數傳遞上

值得注意的是,二者皆可達到通過函式中的操作修改原變數值的效果,只是:

指標作為函式引數時,要求變數將位址傳入,對指標的指向值的修改就是對原變數值的修改。

引用作為函式引數時,可以理解為就是將原變數傳入(因為二者共用一塊記憶體空間),對引用的修改當然也可以等效到引用繫結的原變數上。

但是,引用本身不需要開闢空間,所以在執行的時空效率上更好。

我的部落格

C 引用和指標區別

一 引用簡介 引用就是某一變數 目標 的乙個別名,對引用的操作與對變數直接操作完全一樣。引用的宣告方法 型別識別符號 引用名 目標變數名 例1 int a int ra a 定義引用ra,它是變數a的引用,即別名 說明 1 在此不是求位址運算,而是起標識作用。2 型別識別符號是指目標變數的型別。3 ...

C 引用和指標的區別

很久沒寫過這類文章了,本來是想做下筆記,既然要做筆記,不如寫下部落格,就動起手來。文采不怎麼樣,還忘大家見諒 c 引用變數是c 中新增的一種復合型別,也就是說標準c語言中沒有引用變數。所謂引用,實際上就是乙個已定義變數的別名,別名我想大家小時候都有,應該可以理解,別名表示的是同乙個人,這裡引用變數和...

C 引用和指標的區別

c 引用和指標在間接使用其他物件的各種操作功能上面類似,但是兩者的不同之處也很明顯 1.指標本身佔據記憶體空間,但是引用只是乙個物件的別名,本身不分配記憶體空間 2.指標定義時可以不初始化,但是定義乙個引用必須進行初始化,並且初始化時只能是乙個物件 比如 int b 3.14 這樣是錯的,要明白 引...