在 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中文网其他相关文章!