-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 それが間違っている場合は助けてください私はなぜそれを理解する。
私が見た例から、このコードではパス名がどのように機能するかもわかりません。それも助けてください。
スタティックスコープを仮定します。
これは、パラメータ渡しメソッドの意味については、Googleにしようとしましたか?また、関数/プロシージャにパラメータを渡すこともできません。関数/プロシージャ宣言は、どのメソッドが使用されるかを確立しました。最後に、値渡しの場合、プロシージャ/ファンクション内の値の変更は、プロシージャ/ファンクションが完了すると失われます。 – FDavidov
これはちょうど理論的なものです。異なるパラメータ渡しを使用して実行された場合、コード出力はどのようになりますか?そして、はい、私はグーグルで、さまざまな渡し方についての教科書を持っていますが、私が理解するのを助けるためにもう少し教えが必要です。 – KNuz