0

パラメータの受け渡し方法を正確に調べようとしています。彼らがすること、違いは何ですか...私は次のサブプログラムを持っています:

subprogram p(x)
   a[1] = 6;
   element = 2;
   x = x + 3;
end

a は配列で、要素は 2 つだけです。

a[1] = 1 
a[2] = 2
element = 1 

サブプログラムを次のように呼び出します。

p(a[element])

次に、サブプログラムが「値渡し」、「結果渡し」、「値-結果渡し」、「参照渡し」、または「名前渡し」メソッドを使用した場合の結果はどうなるでしょうか。

私は本当に混乱しています。前もって感謝します。

4

1 に答える 1

0

言語は、変数のスコープと、関数が呼び出されたときまたは関数が定義されたときの変数のバインド方法に影響します。ただし、静的なレキシカル スコープ ルールが適用されると想定することはおそらく安全です。

値渡し: 明示的に名前が付けられた変数のみを変更します。

a[1] = 6
a[2] = 2
element = 2

参照渡し: 明示的に名前が付けられた変数と渡されたものを変更します。

a[1] = 9
a[2] = 2
element = 2

結果渡し: 明示的に名前が付けられた変数と渡されたものを変更します。

a[1] = 9
a[2] = 2
element = 2

Pass By Value-Result: 明示的に名前が付けられた変数と渡されたものを変更します。

a[1] = 9
a[2] = 2
element = 2

名前渡し: 明示的に名前が付けられた変数と渡されたものを変更します。

a[1] = 6
a[2] = 5
element = 2
于 2013-06-02T13:38:58.537 に答える