#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("BAC.TXT");
void eval(int a, int b, int &rez)
{
rez = a + b;
}
int main()
{
int nr;
int s;
fin >> s;
while (fin >> nr)
eval(s, nr, s);
cout << s << '\n';
return 0;
}
所以我有这段代码。我从文件中读取数字,并使用给定的函数“eval”跟踪它们的总和。在这种情况下,将参数传递两次而不是使用另一个变量可能被认为是糟糕的代码(虽然我不确定是否在我的情况下是糟糕的代码)。我的问题是:这会改变变量s
的值吗?再次说明,我通过值传递一次,通过引用传递一次!我已经在我的电脑上编写了代码,它确实更改了s
的值。现在我的问题是:为什么?如果我用正确的方式问这个问题:背后发生了什么?
a
是s
的一个副本。rez
就是s
本身。我不清楚你对此还有什么疑问。 - François Andrieux