C 函數參數傳遞機制分為以值傳遞和按參考傳遞。按值傳遞建立參數值副本,對副本的修改不影響原始參數,用於基本資料類型。按引用傳遞直接傳遞參數位址,允許函數修改原始參數,用於複雜類型。
C 函數參數傳遞機制
#在C 中,參數傳遞機制決定了函數如何接收從呼叫者傳遞的參數。有值傳遞和引用傳遞兩種機制。
按值傳遞
按值傳遞會建立參數值的副本,副本儲存在函數的堆疊訊框中。對副本的任何修改都不會影響呼叫函數中實際的參數。按值傳遞通常用於基本資料類型(int、float 等)。
程式碼範例:
void increment(int value) { value++; // 修改局部副本 } int main() { int a = 5; increment(a); std::cout << a << std::endl; // 输出 5,因为 a 的值没有改变 }
按引用傳遞
按引用傳遞不會建立參數的副本,而是透過引用傳遞參數本身的位址。這允許函數直接修改呼叫函數中的原始參數。按引用傳遞通常用於複雜類型(物件、容器等)。
程式碼範例:
void increment(int& value) { value++; // 修改原始参数 } int main() { int a = 5; increment(a); std::cout << a << std::endl; // 输出 6,因为原始参数被修改 }
實戰案例
以值傳遞範例:計算函數參數的平方。
int square(int value) { return value * value; } int main() { int a = 5; int result = square(a); std::cout << result << std::endl; // 输出 25,因为按值传递不会影响 a }
按引用傳遞範例:交換兩個函數參數的值。
void swap(int& a, int& b) { int temp = a; a = b; b = temp; } int main() { int a = 5; int b = 10; swap(a, b); std::cout << "a = " << a << ", b = " << b << std::endl; // 输出 a = 10, b = 5,因为按引用传递修改了原始参数 }
以上是C++ 函式參數傳遞機制有哪些?的詳細內容。更多資訊請關注PHP中文網其他相關文章!