21xrx.com
2024-11-22 07:19:41 Friday
登录
文章检索 我的文章 写文章
C++中实参和形参的传递方式
2023-06-30 22:50:22 深夜i     --     --
实参 形参 传递方式 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

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

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

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

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复