c++++函數參數傳遞分為值傳遞和引用傳遞,值傳遞不會修改函數中變量,優點是低內存消耗,缺點是針對大數據結構復制開銷大。引用傳遞優點是避免了大數據結構的復制開銷,缺點是可能修改調用函數中變量。
C++ 函數參數傳遞方法
C++ 中,函數參數的傳遞方式分為 值傳遞 和 引用傳遞。每種方法都有其優點和缺點,如下所示:
值傳遞
優點:
不會修改調用函數中的變量
在函數內部對參數進行的修改不會影響調用函數中的值
內存消耗少
缺點:
針對大型數據結構,會產生大量的復制開銷
對于基本數據類型(如 int、float 等),效率較低
引用傳遞
優點:
避免了大型數據結構的復制開銷
針對基本數據類型,效率更高
缺點:
可能會修改調用函數中的變量
需要謹慎避免懸空引用
實戰案例
值傳遞
void swapVal(int a, int b) { int temp = a; a = b; b = temp; } int main() { int x = 5, y = 10; swapVal(x, y); // 調用函數,值傳遞 cout << "x: " << x << ", y: " << y << endl; }
登錄后復制
輸出:
x: 5, y: 10
登錄后復制
引用傳遞
void swapRef(int &a, int &b) { int temp = a; a = b; b = temp; } int main() { int x = 5, y = 10; swapRef(x, y); // 調用函數,引用傳遞 cout << "x: " << x << ", y: " << y << endl; }
登錄后復制
輸出:
x: 10, y: 5
登錄后復制