當將變量聲明爲引用時,它將成爲現有變量的替代名稱。經過在聲明中添加「&」,能夠將變量聲明爲引用。 編程
C++:安全
輸出: x = 20 ref= 30微信
應用範圍: 數據結構
修改函數中傳遞的參數:若是函數收到對變量的引用,則能夠修改變量的值。例如,如下程序變量使用引用進行交換。 函數
C++:學習
1.避免 複製大型結構:想象一個必須接收大型對象的函數。若是咱們經過它而沒有引用,則會建立它的新副本,這會浪費CPU時間和內存。咱們可使用引用來避免這種狀況。spa
C++:指針
2.在「對於每一個循環」中修改全部對象:咱們能夠在「對每一個循環」中使用引用來修改全部元素 視頻
C++:對象
3.對於每一個循環,避免 對象的複製:當對象較大時,咱們能夠在每一個循環中使用引用來避免單個對象的複製。
C++:
參考與指針:
引用和指針均可以用於更改另外一個函數內部的一個函數的局部變量。看成爲參數傳遞給函數或從函數返回時,它們都還能夠用於保存大對象的副本,以提升效率。儘管有上述類似之處,引用和指針之間仍是存在如下差別。
1.能夠將指針聲明爲void,可是引用永遠不能爲void。例如
整數a = 10;void * aa =&a;//有效無效
&ar = a; //無效
2.指針變量具備n級/多級間接尋址,即單指針,雙指針,三指針。而參考變量僅具備一個/單個間接級別。如下代碼揭示了上述要點:
引用的功能不如指針
1)建立引用後,之後就不能再引用其餘對象了;它沒法從新放置。這一般是經過指針完成的。
2)引用不能爲NULL。指針一般被設置爲NULL,以指示它們沒有指向任何有效的對象。
3)引用必須在聲明時進行初始化。指針沒有這種限制
因爲上述限制,C ++中的引用不能用於實現連接列表,樹等數據結構。在Java中,引用沒有上述限制,能夠用於實現全部數據結構。Java中引用更強大是Java不須要指針的主要緣由。
更安全,更易於使用:
1)更安全:因爲必須先初始化引用,因此不太可能存在諸如野指針之類的野引用。仍然有一些引用不能引用有效位置
2)易於使用:引用不須要解引用運算符便可訪問該值。它們能夠像普通變量同樣使用。僅在聲明時才須要「&」運算符。一樣,可使用點運算符('。')訪問對象引用的成員,這與須要箭頭運算符(->)訪問成員的指針不一樣。
結合上述緣由,在諸如複製構造函數參數之類的地方不多有不能使用指針的地方。必須使用引用在複製構造函數中傳遞參數。一樣,必須使用引用來重載某些運算符,例如++。
但願對你有幫助!
另外若是你想更好的提高你的編程能力,學好C語言C++編程!彎道超車,快人一步!筆者這裏或許能夠幫到你~
C語言C++編程學習交流圈子,QQ羣1090842465【點擊進入】微信公衆號:C語言編程學習基地
分享(源碼、項目實戰視頻、項目筆記,基礎入門教程)
歡迎轉行和學習編程的夥伴,利用更多的資料學習成長比本身琢磨更快哦!
編程學習書籍分享:
編程學習視頻分享: