比較以下兩個**
(1)#include
#include
void turn(int x, int y)//無引用
int main()
(2)#include
#include
void turn(int &x, int &y)//有引用
int main()
結論:
說白了引用&就是別名(你的小名,指的是同乙個你),如果程式對引用做出改動,其實就是對目標的改動。
當用執行語句trun(&a,&b)時,實參a和b的值發生了交換,如果turn函式的形參不用引用型別,這樣呼叫時,由於c/c++採用實參到形參的單向值傳遞,所以實參a和b的值並不發生任何改變
---------------------
原文:
引用:引用是乙個變數的另乙個名字,又稱別名。定義方式:
int a=10;
int &b=a;在這裡,意思就是給a變數起了乙個新名字b,因此b不可再次被重新定義。
引用必須初始化,無空引用,並且引用不分等級。
引用與指標的異同點:
相同點:在引用中 int &b=a;這一句**可被編譯器看做int * const b=&a;//加上const的作用是表明指標b的自身的值(a的位址)不能改變,而指向的值(a的值)可以改變。也就是說引用相當於指標,引用與指標在編譯時的方法一樣,指向的都是變數的記憶體位址。
不同點:1.在定義方式中引用儲存的是值,而指標是乙個變數的拷貝,儲存的是位址。
2.引用只能對已經存在的變數或物件實現引用,而指標則不需要,可以定義為空。
3.在函式的傳參中,如果傳遞的是乙個引用,意味著這個變數或物件已經存在了;如果傳遞的是乙個指標,則不能判斷這個指標是不是有效的,是不是空的,因此在函式體 中大多數都得進行指標是否為空的判斷。但是雖然引用較為安全,但是利用指標來傳參效率較快。
4.引用是直接訪問變數,不用分配自己的記憶體空間,而指標是間接訪問,需要定義,需要有自己的記憶體空間。
例:交換函式swap()
void swap(int &a,int &b)
void main()
1234567891011
等價指標為:
void swap(int *const a,int *const b)
void main()
---------------------
原文:
關於C 引用C,C引用C ,extern的使用
由於自己理解還不夠透徹,所以不能說寫什麼出來,但是看到這裡面的內容,然後自己也去操作了一下,覺得真的挺不錯的。在實際操作原文例子的時候要注意檔案,c與c 的區別,例子1是c 引用c,標頭檔案使用的是 extern int foo int x,int y 在c 檔案中模組中,要引用標頭檔案 inclu...
關於C 的引用
c 的實現是建立在c的基礎上的,c 是c的超集,也就是c的補充以及擴充套件 所以叫c 也可以理解為c 是裝了裝備的c。c 的引用其實就是c的指標的變形,兩者可以相互替代。下面先貼一段c 的 include using namespace std void fgd int e intmain 輸出結果...
c語言引用
引用簡介 引用就是某一變數 目標 的乙個別名,對引用的操作與對變數直接操作完全一樣。引用的宣告方法 型別識別符號 引用名 目標變數名 例1 int a int ra a 定義引用ra,它是變數a的引用,即別名 說明 1 在此不是求位址運算,而是起標識作用。2 型別識別符號是指目標變數的型別。3 宣告...