21xrx.com
2025-03-27 23:48:35 Thursday
文章检索 我的文章 写文章
C++中传值和传引用的区别
2023-07-03 06:14:23 深夜i     20     0
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`的值。

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

  
  

评论区

请求出错了