-1
當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 如果是錯了,請幫忙我明白爲什麼。
我也不確定在我看到的例子中,這個代碼中pass-by-name是如何工作的。請幫助。
假設靜態範圍。
您是否嘗試過谷歌有關參數傳遞方法的含義?另外,你不能以某種方式將參數傳遞給函數/過程,有時候也不能以另一種方式傳遞參數。函數/過程聲明確定了要使用的方法。最後,如果按值傳遞,那麼在過程/函數完成後,對過程/函數內的值的任何更改都將丟失。 – FDavidov
這只是理論上的,如果代碼在使用不同的參數傳遞運行時會輸出什麼。是的,我已經搜索了一些關於不同傳球方法的教科書,但我需要更多的指導來幫助我理解。 – KNuz