引用和指針,誰更安全,誰更高效?


& 在C中表示取地址符,在C++中表示引用

在聲明一個引用變量時,必須將其初始化,並且不允許在函數執行期間再將其作為其他變量的引用。

那么引用和指針誰更安全,誰更高效呢?

首先我們要認識到,使用引用傳遞函數的參數時,在內存中並沒有實參的副本,而是對實參直接操作。當使用傳值調用時,需要給形參分配存儲單元,形參變量是實參的副本,如果傳遞的是對象,還要調用拷貝構造函數。因此傳引用調用要比傳值調用效率更高,占空間更少。

使用指針作為函數的參數也可以達到引用同樣的效果,但是在被調函數中同樣要給形參分配存儲單元,在這個意義上說,引用的效率更高。而且頻繁使用“*指針變量名”的形式進行運算容易產生錯誤而且可閱讀性較差。因此引用是個更安全高效的選擇。

常引用

如果既要提高程序的效率,又要使傳遞給函數的數據不在函數里被改變,可以使用常引用。const typename & 引用名 = 變量名

用這種方式聲明的引用,不能通過引用對目標變量的值進行修改。保證了引用的安全性。

引用在可以被定義為const的情況下,應當盡量被定義成const。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM