在pass by value结果中给出相同的变量两次

时间:2015-01-03 21:34:25

标签: pass-by-value

我想要理解的是,当我将相同的变量作为函数参数传递两次时,它是否也会在不同的内存位置复制两次?

假设inout指定了按值传递结果。

void foo(inout int a, inout int b){
    a++;
    b++;
}
x = 2;
foo(x, x);
// x is 3

当传递值结果指定时,应复制x的值,然后递增并在函数返回后分配给x。在这段代码中,x被复制两次,因为foo函数是用参数“x,x”调用的吗?如果不是,为什么在两次递增操作后它仍为3?

0 个答案:

没有答案