我试图使用pass by reference将常量整数传递给函数。
#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;
}
但是,输出永远不会更新。
答案 0 :(得分:6)
SIZE
和loopSize
是两个不同的对象。即使SIZE
当时以loopSize
的值开始生命,但更改一个不会改变另一个。 SIZE
不是参考。
事实上,由于SIZE
是一个常数,你无法合理地期望它无论如何都会改变 !
您是否有可能撰写以下内容?
const int& SIZE = loopSize;
// ^
答案 1 :(得分:0)
您正在更改loopSize并打印SIZE,因此显然该值不会更改。此外,SIZE是一个const,它不会改变。