1、按值傳遞
簡單來說,在給乙個函式傳遞引數時,該函式獲得的引數只是你傳遞的引數的副本,彼此之間分開儲存,不共享一片記憶體。
舉個例子
void swap(int x,int y)
int main()
int main()
int main()
{ int a=3;
int b=4;
swap(a,b);
cout<<"a="《結果輸出"a=4, b=3"。
本質上,引用傳遞在底層上和指標傳遞的實現方式是一樣的,我們可以認為引用僅僅是語法上的一種不同方法(有時稱為「語法糖」)。什麼是語法糖,舉個例子,a[i]和*(a+i)本質上是一樣的,但a[i]的可讀性更強,比*(a+i)更加直觀容易理解,語法糖使得程式更加不容易出錯。
同樣的,引用傳遞雖然在底層的實現上和指標傳遞一樣,
但是從語言來說,引用不等於指標,因為c++給引用賦予了一些特性,這些特性使得引用傳值在某些方面比指標傳值要好,比如你不必擔心引數是否被初始化了(編譯器強迫它初始化),也不必知道怎樣對它間接引用(這由編譯器做)。
C 引用和指標區別
一 引用簡介 引用就是某一變數 目標 的乙個別名,對引用的操作與對變數直接操作完全一樣。引用的宣告方法 型別識別符號 引用名 目標變數名 例1 int a int ra a 定義引用ra,它是變數a的引用,即別名 說明 1 在此不是求位址運算,而是起標識作用。2 型別識別符號是指目標變數的型別。3 ...
C 引用和指標的區別
很久沒寫過這類文章了,本來是想做下筆記,既然要做筆記,不如寫下部落格,就動起手來。文采不怎麼樣,還忘大家見諒 c 引用變數是c 中新增的一種復合型別,也就是說標準c語言中沒有引用變數。所謂引用,實際上就是乙個已定義變數的別名,別名我想大家小時候都有,應該可以理解,別名表示的是同乙個人,這裡引用變數和...
C 引用和指標的區別
c 引用和指標在間接使用其他物件的各種操作功能上面類似,但是兩者的不同之處也很明顯 1.指標本身佔據記憶體空間,但是引用只是乙個物件的別名,本身不分配記憶體空間 2.指標定義時可以不初始化,但是定義乙個引用必須進行初始化,並且初始化時只能是乙個物件 比如 int b 3.14 這樣是錯的,要明白 引...