函數內的參數修改:當呼叫者的影響
修改函數內的參數時,了解其對呼叫者的影響至關重要。在提供的程式碼片段中:
<br>void trans(double x,double y,double theta,double m,double n)<br>{<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 按值傳遞函數參數,這表示函數接收變數的副本。
要解決此問題,您有兩個選項:
1。在C 中:
使用引用透過引用傳遞參數,修改函數內的原始變數:
<br>void trans(double x, double y,雙Theta 、雙& m、雙 & n)<br>{<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> 米,雙</em> n)<br>{<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 和 C 中的呼叫函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!