标签: 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?