我真的对如何解决此任务一无所知,有人可以帮忙吗?
请考虑以下函数定义:
void f(int i, int &j) {
j = i+1;
i = j*2;
j += i;
}
在以下代码中:
int x = 4, y = 7;
f(x, y);
x
和y
的最终值是多少?
对于初学者,您可以只运行代码...,否则我们可以尝试预测输出。
对于初学者来说,函数f有两个参数,i和j。 j的&Infront表示函数输入的值是通过引用传递的(变量的值将被编辑)。
所以现在让我们用输入4、7评估函数。得到:
j = 4+1 = 5
i = 10
j += i, j = 15
由于变量y是通过引用传递的,其值将变为15。变量x是通过值传递的,因此它不会受到影响,因此保持为4。