首頁 > 後端開發 > C++ > 函數內部的參數修改如何影響 C 和 C 中的呼叫函數?

函數內部的參數修改如何影響 C 和 C 中的呼叫函數?

Barbara Streisand
發布: 2024-12-18 22:57:18
原創
524 人瀏覽過

How Do Parameter Modifications Inside a Function Affect the Calling Function in C and C  ?

函數內的參數修改:當呼叫者的影響

修改函數內的參數時,了解其對呼叫者的影響至關重要。在提供的程式碼片段中:

<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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板