在 C 中,傳遞給函數的參數通常會以值複製。這意味著對函數內參數所做的任何修改都不會影響呼叫者中的原始值。
在給定的程式碼中,trans 函數定義為:
void trans(double x,double y,double theta,double m,double n) { m=cos(theta)*x+sin(theta)*y; n=-sin(theta)*x+cos(theta)*y; }
如果您從同一檔案中呼叫trans 如下:
trans(center_x,center_y,angle,xc,yc);
xc 和yc 的值不會函數內修改。要實現此目的,您有兩個選擇:
在C 中使用引用:
添加號(&)函數中每個參數m 和 n先前定義:
void trans(double x, double y, double theta, double& m, double& n)
在呼叫者中,傳遞不含&符號的變數:
trans(center_x, center_y, angle, xc, yc);
使用指標C:
改變函數定義以接受指標:
void trans(double x, double y, double theta, double* m, double* n)
在呼叫者中,傳遞函數的位址變數:
trans(center_x, center_y, angle, &xc, &yc);
透過使用任一方法,xc和 yc 的值將在 trans 函數內修改,因為它們現在是透過引用傳遞的或指標。這允許函數直接修改呼叫者中的原始變數。
以上是如何在 C 中修改函數參數並反映呼叫者的變化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!