21xrx.com
2024-09-20 00:20:52 Friday
登录
文章检索 我的文章 写文章
C++中传值和传引用的区别
2023-07-03 06:14:23 深夜i     --     --
C++ 传值 传引用 区别

C++中的函数参数传递方式可以分为传值和传引用两种方式。虽然它们看起来很相似,但是它们在使用时有明显的差异。

传值是指在函数调用时将实参的值复制到形参中。在函数中对形参进行修改不会影响到实参的值。这种传递方式常用于函数中不需要改变原始值的情况下使用。例如:


void swap(int a, int b)

  int temp = a;

  a = b;

  b = temp;

int main() {

  int x = 10, y = 20;

  swap(x, y);

  cout << "x = " << x << endl;

  cout << "y = " << y << endl;

  return 0;

}

运行结果是:


x = 10

y = 20

虽然在函数`swap`中`a`和`b`被交换了,但是实参`x`和`y`的值没有改变。

传引用是指在函数调用时将形参绑定到实参的内存地址上,也就是修改形参的值就等于修改实参的值。这种传递方式常用于需要改变原始值的情况下使用。例如:


void swap(int &a, int &b)

  int temp = a;

  a = b;

  b = temp;

int main() {

  int x = 10, y = 20;

  swap(x, y);

  cout << "x = " << x << endl;

  cout << "y = " << y << endl;

  return 0;

}

运行结果是:


x = 20

y = 10

在函数`swap`中,`a`和`b`被定义为引用类型,即指向实参的地址,所以在函数中修改`a`和`b`的值会影响到实参`x`和`y`的值。

总的来说,传值和传引用的最大区别在于函数是否能够修改实参的值。如果函数仅仅是读取实参的值,那么传值和传引用是一样的。如果函数需要改变实参的值,那么就应该使用传引用的方式。

  
  

评论区

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