私のプログラミング言語クラスでは、名前渡しと値渡しの結果がどのように機能するかを理解しようとしています。これらが主流の言語ではほとんど使用されていないことはわかっていますが、それらがどのように機能するかを感じたいと思っています。例として (言語に依存しない):
void swap(int a, int b){
int t;
t = a;
a = b;
b = t;
}
void main() {
int val = 1, list[5] = {1, 2, 3, 4, 5}
swap(val, list[val]);
}
pass-by-value-result と pass-by-name の両方で swap が呼び出された後の val と list の値はどうなるでしょうか。
説明も素晴らしいでしょう。
私が推測したところ、それは value-result: val=2, list={1,1,3,4,5} と name: val=3, list={1,2,1,4,5} を得ました。私はそれらの結果について非常に確信が持てません。
また、単一の int ではなく配列が渡されたときに、これらの両方のメソッドが機能する方法が変わりますか? 事前に助けてくれてありがとう。