1.C++系列之函數,
Reference: http://www.cplusplus.com/doc/tutorial/functions/
值傳遞與引用傳遞
- 值傳遞指的是函數傳遞的參數是具體的值(數字、字符串等),函數體對這些值進行操作的同時不會改變這些參數值。
- 引用傳遞指的是函數傳遞的參數就是變量,"變量"當然是可以被改變的,所以函數體對這些變量進行操作的同時可以對其進行改變。
- 引用傳遞可以解決什麼問題呢?當需要傳遞的參數占用很大空間時,若采用值傳遞的方式,效率會非常低,比如我之前把一個十幾GB的文件傳到函數裡進行處理,因為它要將這些文件復制到函數中,所以速度非常慢,但采用引用傳遞的方式就可以解決這個問題,因為只是傳遞變量名而已。
- 要是我想用引用傳遞,但不希望函數可以改變參數的值呢?很簡單,把它變成常量引用就行了,在每個不希望改變的參數類型前面加上const關鍵字,如void duplicate (const int& a, const int& b, const int& c)
內聯函數
- 內聯函數主要為了解決函數調用的效率問題,是以犧牲空間為代價來節省函數調用的開銷,可以理解為內聯函數就是小型函數,一般來說這些函數內部沒有循環、條件語句等,可以替代C語言中的宏定義。
- 用法是在函數聲明的前面加上關鍵字inline就可以了。