函数内的参数修改:对调用者的影响
修改函数内的参数时,了解其对调用者的影响至关重要。在提供的代码片段中:
<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中文网其他相关文章!