関数呼出しとメモリモデル 引数付きの関数呼出しの解釈 「int func ( x ) { return x + 1; }」の時に、「func ( 5 )」とは ? これまでは、「5 + 1」に置き換えて考えてきた (数学的解釈) メモリモデルでの解釈 「func ( 5 )」: メモリのどこか ( x という名前をつける ) に 5 を保存する 「return x + 1;」では、メモリ x から、5 を取り出して計算する C 言語ではどちらの解釈が適切か ? 実は.. メモリモデルになっている では、数学解釈ではダメなのか : 実をいえば、副作用がなければ大丈夫 この違いが問題になるのは ? 変数への「代入」操作が行われる場合 I/O が行われる場合