将常量引用传递到函数中

Passing a constant reference into a function

本文关键字:函数 常量 引用      更新时间:2023-10-16

我正在尝试使用引用传递将常量整数传递到函数中。

#include <iostream>
using namespace std;
int test(int& num);
// changes a constant variable
int main() {
  int loopSize = 7;
  const int SIZE = loopSize;
  cout<<SIZE<<endl;
  test(loopSize);
  cout<<SIZE;
  return 0;
}
int test(int& num){
  num -= 2;
}

但是,输出永远不会更新。

SIZEloopSize是两个不同的对象。尽管SIZE当时以loopSize的价值开始了它的生命,但改变一个不会改变另一个。 SIZE不是参考。

事实上,由于SIZE是一个常数,你永远无法合理地期望它改变

您是否打算编写以下内容?

const int& SIZE = loopSize;
//       ^

您正在更改 loopSize 并打印 SIZE,因此显然该值不会更改。此外,SIZE 是一个常量,无论如何它都不会改变。