関数内のパラメータ変更: 呼び出し元への影響
関数内のパラメータを変更する場合、呼び出し元への影響を理解することが重要です。提示されたコード スニペット:
<br>void trans(double x,double y,double theta,double m,double n)<br>{</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">m=cos(theta)*x+sin(theta)*y; n=-sin(theta)*x+cos(theta)*y;
}
でこの関数を呼び出しますtrans(center_x,center_y,angle,xc,yc) は、xc と yc の値を直接変更しません。これは、C が関数パラメーターを値で渡すため、つまり関数が変数のコピーを受け取るために発生します。
これに対処するには、2 つのオプションがあります:
1。 C の場合:
参照を使用してパラメーターを参照渡しし、関数内の元の変数を変更します:
<br>void trans(double x, double y,ダブルシータ、ダブル&m、ダブル& n)<br>{</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">m=cos(theta)*x+sin(theta)*y; n=-sin(theta)*x+cos(theta)*y;
}
2. C の場合:
ポインターを使用してアドレスを明示的に渡すことでパラメーターを渡します:
<br>void trans(double x, double y, double theta, double う、ダブル<em> n)</em>{<br></p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">*m=cos(theta)*x+sin(theta)*y; *n=-sin(theta)*x+cos(theta)*y;
以上が関数内のパラメータ変更は、C および C の呼び出し関数にどのような影響を与えますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。