C++中函數的參數加了&和const的作用


例如下面這段代碼

fun(int* in, const std::string& str)
{

}
  • 不加引用的話,str則被復制一份,函數中對str的操作實質上是對其復制品的操作,所以即使在函數中修改了str,調用層的原str並不會被改變。
  • 加了引用的話,傳入的str即是調用層的實際參數,這樣省卻了復制過程,效率會有提高。但如果函數中修改了str,則原str也會改變,因為其實是同一個東西。
  • 有時候為了追求效率(防止傳值時拷貝構造函數的調用開銷),又希望避免改變原來的str,則可在引用的基礎上加const修飾,這樣函數中就不能再修改str的內容(否則會編譯出錯)。


免責聲明!

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



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