21xrx.com
2025-03-29 19:04:59 Saturday
文章检索 我的文章 写文章
C++中引用是否会改变原变量的值?
2023-06-25 17:39:58 深夜i     40     0
C++ 引用 改变 原变量

C++中的引用可以理解为是某个变量的别名,也就是说引用和原变量是相同的地址,所以在修改引用时实际上也是在修改原变量的值。

比如说我们有一个int类型变量a,我们可以通过取地址符&创建一个a的引用b,然后通过修改b的值来间接修改a的值,示例如下:

#include <iostream>
using namespace std;
int main()
  int a = 10;
  int &b = a; // 创建a的引用b
  cout << a << endl; // 输出a的原始值
  b = 20; // 修改b的值
  cout << a << endl; // 输出a的修改后的值
  return 0;

输出结果为:

10
20

从输出结果可以看出,修改引用b的值也改变了原变量a的值。

但需要注意的是,当我们将一个引用作为函数参数传递时,函数中的修改只会影响到原变量的值,而不会影响到引用本身的值。这是因为传递引用时是传递的地址,而不是传递引用本身,函数中对地址中的值进行修改后,引用本身的值不会改变。

#include <iostream>
using namespace std;
void change(int &x) {
  x += 10;
  cout << "change函数中x的值为:" << x << endl;
}
int main() {
  int a = 10;
  cout << "a的原始值为:" << a << endl;
  change(a);
  cout << "a被修改后的值为:" << a << endl;
  return 0;
}

输出结果为:

a的原始值为:10
change函数中x的值为:20
a被修改后的值为:20

可以看到,虽然在change函数中修改了变量x的值,但函数实际上是传递的a的地址,所以修改后的值也会影响到a,但函数中对x的修改并没有对引用本身产生影响。

综上所述,C++中的引用可以改变原变量的值,但需要注意在函数中对引用的修改不会影响到引用本身的值。

  
  

评论区

    相似文章