php中文网

C++ 函数参数传递方式:入参 vs 出参

php中文网

C++ 函数参数传递方式:入参 vs 出参

在 C++ 中,函数参数的传递方式可以分为两种:入参(call-by-value)和出参(call-by-reference)。理解这两种传递方式之间的区别对于编写高效和可维护的代码至关重要。

入参

入参传递方式将函数参数值的副本传递给函数。这意味着函数只能操作该值的副本,而不会影响原始变量。

立即学习“C++免费学习笔记(深入)”;

void square(int x) {
  x *= x;
}

int main() {
  int y = 5;
  square(y);
  cout << y << endl; // 输出 5
}

在这个例子中,square 函数接收 x 的副本,而不是对其原始值进行直接访问。因此,对 x 的修改仅影响函数内部的副本,而不会影响 main 函数中的 y。

出参

出参传递方式将函数参数的地址作为副本传递给函数。这允许函数直接修改原始变量,而不是其副本。

void swap(int& x, int& y) {
  int temp = x;
  x = y;
  y = temp;
}

int main() {
  int a = 5, b = 10;
  swap(a, b);
  cout << a << " " << b << endl; // 输出 10 5
}

在这个例子中,swap 函数使用引用参数(&)来获取对 a 和 b 原始变量的引用。因此,函数内的修改直接影响 main 函数中的原始变量。

使用场景

入参通常用于传递只读值或不希望被函数修改的值。而用于需要修改或访问原始变量的情况下。

实战案例

考虑一个游戏中对象位置更新函数的场景:

void update_position(float& x, float& y, float delta_x, float delta_y) {
  x += delta_x;
  y += delta_y;
}

在这个案例中,update_position 函数需要修改对象原始位置,因此需要使用出参。

注意

在 C++ 中,默认情况下所有函数参数都是入参传递。只有在参数类型前加上引用符号(&)时,才会使用出参传递。

以上就是C++ 函数参数传递方式:入参 vs 出参的详细内容,更多请关注php中文网其它相关文章!