2012-04-23 19 views
0

Cのようなプログラムを実行した後に結果がどのようになるか、パラメータ渡しのメカニズムが名前渡しの結果であれば?パラメータ渡し(値渡し)

procedure swap(int x, int y){ 
    int t = x; 
    x = y; 
    y = t; 
} 

main(){ 
    int v = 1; 
    int list[5] = {1,3,5,7,9}; 
    swap(v, list[v]); 
} 
+3

宿題私は言うでしょうか? – Jack

+0

ええと、ちょっと..XD – ZHOU

+0

あなたのタイトルは、ボディとは異なる呼び出し規約について語っています。それは意図的なのでしょうか?また、結果はどうなると思いますか?なぜですか? – sepp2k

答えて

0

(注:私は質問は、コール・バイ・名程度であることを仮定している質問の体が示唆するように - ない値による呼び出し結果のタイトルが示す通り。)

をコール・バイ・ネームを使用する場合、関数の本体をコール・サイトに挿入し、関数本体の各パラメータ名を(評価されていない)引数に置き換えることによって、関数呼び出しの結果を把握できます。

この場合は、xの各出現をvと置き換え、それぞれの出現をyとし、list[v]とすることを意味します。あなたがそれを行い、あなたの頭の中で結果のコードを実行するなら、あなたは結果が何かを見るでしょう。

関連する問題