源**
#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 這樣是錯的,要明白 引...