c++++ 函數中的引用參數(本質為變量別名,修改引用修改原始變量)和指針參數(存儲原始變量的內存地址,通過解引用指針修改變量)在傳遞和修改變量時有著不同的用法。引用參數常用于修改原始變量(尤其是大型結構體),傳遞給構造函數或賦值運算符時避免復制開銷。指針參數則用于靈活指向內存位置,實現動態數據結構或傳遞空指針表示可選參數。
C++ 函數中引用參數和指針參數的高級用法
在 C++ 函數中,引用參數和指針參數允許以不同的方式傳遞和修改變量。了解它們的差異并合理使用至關重要。
引用參數
引用參數本質上是變量的別名。對引用參數所做的任何更改都會反映到原始變量中。
語法:
void func(int& ref_param) { ref_param++; // 修改引用參數會修改原始變量 }
登錄后復制
指針參數
指針參數存儲原始變量的內存地址。通過指針可以訪問并修改原始變量,但不會創建一個副本。
語法:
void func(int* ptr_param) { *ptr_param++ // 通過解引用指針可以修改原始變量 }
登錄后復制
使用場景
引用參數:
當需要在函數內修改原始變量時傳遞大型結構體或類對象,避免復制的開銷將對象作為非 const 引用傳遞給構造函數或賦值運算符
指針參數:
當需要靈活地指向不同的內存位置時實現動態數據結構,如鏈表傳遞空指針以指示可選參數
實戰案例:
使用引用參數交換兩個數
void swap(int& a, int& b) { int temp = a; a = b; b = temp; }
登錄后復制
使用指針參數訪問數組
void printArray(int* arr, int n) { for (int i = 0; i < n; i++) { cout << arr[i] << " "; } cout << endl; }
登錄后復制