함수에서 매개변수 수정
함수에서 매개변수 값을 수정하면 C의 호출 함수에 영향을 미칠 수도 있고 그렇지 않을 수도 있습니다. 다음 예를 고려하십시오.
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(center_x, center_y, angle, xc, yc)를 사용하여 이 함수를 호출하면 다음과 같은 질문이 제기됩니다. xc 및 yc가 수정됩니까?
C에서, 기본 매개변수 전달 방법은 값별 호출입니다. 즉, 인수의 복사본이 함수에 전달됩니다. 따라서 trans 내에서 m과 n을 수정해도 xc와 yc에는 영향을 미치지 않습니다.
함수 내 매개변수 변경 사항이 호출 함수에 반영되도록 하려면 참조를 사용할 수 있습니다. C에서 참조는 포인터에 대한 대안을 제공하고 변수에 대한 별칭처럼 동작합니다. 참조를 사용하면 원래 변수를 직접 수정할 수 있습니다.
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; } int main() { trans(center_x, center_y, angle, xc, yc); }
이 경우 xc 및 yc가 trans에 전달되면 원래 변수의 별칭으로 처리되어 trans가 해당 값을 수정할 수 있습니다.
C에서도 유사한 접근 방식으로 변수 값 대신 포인터나 주소를 변수에 전달합니다. 그러나 C에서 참조를 사용하는 것이 일반적으로 더 편리하고 안전한 것으로 간주됩니다.
위 내용은 매개변수 수정이 C의 함수 호출에 어떤 영향을 미칩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!