生活随笔
收集整理的這篇文章主要介紹了
引用的用法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? 引用僅僅是一個名字,一個實際存在的對象的名字
引用:
初始化時被賦值,以后不可更改聲明一個引用,不是新定義了一個變量,它只表示該引用名是目標變量名的一個別名,它本身不是一種數據類型,因此引用本身不占存儲單元,系統也不給引用分配存儲單元。故:對引用求地址,就是對目標變量求地址。&ra與&a相等不能建立數組的引用。因為數組是一個由若干個元素所組成的集合,所以無法建立一個數組的別名。使用引用傳遞函數的參數,在內存中并沒有產生實參的副本,它是直接對實參操作。使用指針作為函數的參數雖然也能達到與使用引用的效果,但是,在被調函數中同樣要給形參分配存儲單元,且需要重復使用"*指針變量名"的形式進行運算 引用作為返回值,必須遵守以下規則:
1.不能返回局部變量的引用,主要原因是局部變量會在函數返回后被銷毀,因此被返回的引用就成為了"無所指"的引用,程序會進入未知狀態。
2.不能返回函數內部new分配的內存的引用。雖然不存在局部變量的被動銷毀問題,可對于這種情況(返回函數內部new分配內存的引用),又面臨其它局面。例如,被函數返回的引用只是作為一個臨時變量出現,而沒有被賦予一個實際的變量,那么這個引用所指向的空間(由new分配)就無法釋放,造成內存泄漏。
const?引用與非const引用: const引用只可讀不可改,與綁定對象是否是const無關非const可改,只可綁定到非const對象上const引用可綁定到不同類型但相關類型的對象上,或左值非const引用只可綁定到同類型對象 指針和引用的區別
引用不可以為空,當被創建的時候,必須初始化,而指針可以是空值,可以在任何時候被初始化。指針的值可以為空,但是引用的值不能為NULL,并且引用在定義的時候必須初始化;引用只能在定義時被初始化一次,之后不可變;指針可變, 引用“從一而終”?sizeof引用”得到的是所指向的變量(對象)的大小,而”sizeof指針”得到的是指針本身的大小;指針和引用的自增(++)運算意義不一樣;如果返回動態內存分配的對象或者內存,必須使用指針,引用可能引起內存泄漏;指針和引用的相同
? ??1. 都是地址的概念; 指針指向一塊內存,它的內容是所指內存的地址;引用是某塊內存的別名。
轉載于:https://www.cnblogs.com/tianzeng/p/9438759.html
總結
以上是生活随笔為你收集整理的引用的用法的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。