0
所以我有这片帕斯卡代码:了解呼叫由值-结果和呼叫参考differnce
program P;
var a: array [1..2] of Integer;
var i :Integer;
var k :Integer;
procedure update(x,y,z: Integer);
begin
x := x+1;
y := x*2;
x := y;
k := x;
end
begin
a[1] := 5; a[2] := 10;
k := 3;
for i:=1 to 2 do
begin
update(a[i],a[2],k);
print(a);
print(k)
end
end.
(假设“打印”打印由空格分隔阵列的元件,并且然后显示新的线也是一个整数,它只是打印它)
而且我想了解如果函数调用是通过值结果还是通过引用输出会有多不同。很明显,如果它只是按值,很容易判断该过程对实际参数没有任何影响,即输出(按值)应该是:5 10 3 5 10 3。
我认为,如果它是价值的结果,它会是,至少第一次迭代:12 12 12. 在引用的情况下,我感到困惑。 它会是什么?
为什么标记为C++而不是Pascal? –
对不起,我的坏,虽然它并没有真正有所作为,因为这个问题的主题与它所写的语言无关。 –
你包含代码,所以标签绝对有所作为。 –