C 中有四個函數呼叫約定:透過值傳遞、透過指標傳遞、透過引用傳遞和透過 RVO 傳遞。透過值傳遞傳遞參數的副本,透過指標傳遞傳遞參數的位址,透過引用傳遞傳遞參數的引用,而透過 RVO 傳遞則在特定條件下直接移動物件的內容。
C 函數呼叫約定
函數呼叫約定規定如何在函數呼叫過程中傳遞參數,以及在呼叫傳回時如何傳回結果。 C 中有四個主要的函數呼叫約定:
1. 透過值傳遞(pass-by-value)
2. 透過指標傳遞(pass-by-pointer)
3. 透過引用傳遞(pass-by-reference)
4. 透過RVO 傳遞(return value optimization,回傳值最佳化)
實戰案例
// 通过值传递整数 void func_by_val(int val) { val++; // 不会影响原始值 } // 通过指针传递整数 void func_by_ptr(int *val) { (*val)++; // 会影响原始值 } // 通过引用传递整数 void func_by_ref(int &val) { val++; // 会影响原始值 } int main() { int a = 5; func_by_val(a); std::cout << a << std::endl; // 输出 5 func_by_ptr(&a); std::cout << a << std::endl; // 输出 6 func_by_ref(a); std::cout << a << std::endl; // 输出 7 }
以上是C++ 函式呼叫約定有哪些?的詳細內容。更多資訊請關注PHP中文網其他相關文章!