21xrx.com
2025-03-30 12:11:07 Sunday
文章检索 我的文章 写文章
C++中实参和形参的传递方式
2023-06-30 22:50:22 深夜i     10     0
实参 形参 传递方式 C++ 函数调用

在C++中,参数的传递方式可以分为两种:按值传递和按引用传递。无论是实参还是形参,都可以按值传递或按引用传递。

按值传递是指将变量的值复制给形参,在函数中对形参的修改不会影响实参的值。这种传递方式适用于简单的数据类型,如int、float、char等。如下面的代码:

void print(int a, float b)
b = " << b << endl;
int main()
{
  int x = 1;
  float y = 2.5;
  print(x, y);
  cout << "x = " << x << ", y = " << y << endl;
  return 0;
}

运行结果为:

a = 5, b = 3.14
x = 1, y = 2.5

可以看到,函数内部对形参的修改不会影响实参的值。

而按引用传递则是将变量的地址传递给形参,函数内部修改形参的值会直接影响实参的值。这种传递方式适用于复杂的数据类型,如数组、结构体等。如下面的代码:

void swap(int& a, int& b)
  int temp = a;
  a = b;
  b = temp;
int main()
{
  int x = 1, y = 2;
  swap(x, y);
  cout << "x = " << x << ", y = " << y << endl;
  return 0;
}

运行结果为:

x = 2, y = 1

可以看到,函数内部对形参的修改直接影响了实参的值。

需要注意的是,按值传递是复制整个对象,而按引用传递只是传递了地址,因此按引用传递可以节省内存开销。但是,需要注意的是,如果在函数中改变了指针的指向,将会影响到原来指针所指向的对象,这需要谨慎处理。

综上所述,按值传递和按引用传递都有各自的优劣,需要根据实际情况选择合适的传递方式。

  
  

评论区

请求出错了