当 x 和 y 按值传递以及按名称传递时,我需要找到以下代码的结果。
PROGRAM EX1;
int i; //global
int A[3]; //global
PROCEDURE P1(int x, int y)
Begin
y:=2;
PRINT(x);
i:=3;
PRINT(x);
i:=3;
PRINT(x);
PRINT(y);
End;
BEGIN //main
A[1]:=7; A[2]:=13; A[3]:=11;
i:=1;
P1(A[i],i); //first call
P1(i,A[i]); //second call
END.
如果 x 和 y 按值传递,这是我得出的结论:输出:13、11、11、3 第二输出:1、3、3、11。如果这是错误的,请帮助我理解原因。
从我看到的示例中,我也不确定在此代码中传递名称将如何工作。也请帮忙。
假设静态范围。