21xrx.com
2024-12-27 07:02:38 Friday
登录
文章检索 我的文章 写文章
C++中引用是否会改变原变量的值?
2023-06-30 19:09:32 深夜i     --     --
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++中的引用可以改变原变量的值,但需要注意在函数中对引用的修改不会影响到引用本身的值。

  
  

评论区

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