>백엔드 개발 >C++ >참조 매개변수가 호출 함수의 값을 수정할 수 있는지 여부

참조 매개변수가 호출 함수의 값을 수정할 수 있는지 여부

WBOY
WBOY원래의
2024-04-20 11:36:02453검색

참조 매개변수는 변수의 주소를 전달하여 원래 변수를 직접 수정할 수 있으므로 실제로 호출 함수의 값을 수정할 수 있습니다.

참조 매개변수가 호출 함수의 값을 수정할 수 있는지 여부

참조 매개변수가 호출 함수의 값을 수정할 수 있는지 여부

소개

프로그래밍에서 매개변수를 전달할 때 값에 의한 전달과 참조에 의한 전달의 두 가지 주요 방법이 있습니다. 참조 매개변수는 변수의 주소에 대한 포인터를 전달하는 것을 의미하며 전달된 매개변수를 함수 외부에서 수정할 수 있도록 합니다. 이 기사에서는 참조 매개변수가 호출 함수의 값을 수정할 수 있는지 여부를 살펴보겠습니다.

값으로 전달 vs. 참조로 전달

  • 값으로 전달: 인수 복사본을 전달하면 호출 함수 내의 수정 사항은 원래 변수에 영향을 주지 않습니다.
  • 참조로 전달: 변수의 주소를 전달하면 호출 함수 내의 매개변수에 대한 수정 사항이 원래 변수에 직접 반영됩니다.

실용 사례

다음은 참조에 의한 전달이 호출 함수의 값을 수정하는 방법을 보여주는 C++ 프로그램입니다.

#include <iostream>

using namespace std;

void swap(int& a, int& b) {
    int temp = a;
    a = b;
    b = temp;
}

int main() {
    int x = 5;
    int y = 10;

    cout << "Before swap: x = " << x << ", y = " << y << endl;

    swap(x, y);

    cout << "After swap: x = " << x << ", y = " << y << endl;

    return 0;
}

출력:

Before swap: x = 5, y = 10
After swap: x = 10, y = 5

이 예에서 swap() 函数按引用接收参数,并在函数内交换了它们的地址。因此,对于调用函数 main() 来说,原始变量 xy 값은 다음과 같습니다. 수정되었습니다.

결론

참조 매개변수를 사용하면 함수 외부에서 전달된 매개변수를 수정할 수 있지만, 원래 변수는 참조로 전달될 때만 영향을 받습니다. 값으로 전달된 매개변수를 수정하면 함수 내부의 복사본에만 영향을 미칩니다. 함수 매개변수의 동작을 올바르게 이해하려면 값으로 전달하는 것과 참조로 전달하는 것의 차이점을 이해하는 것이 중요합니다.

위 내용은 참조 매개변수가 호출 함수의 값을 수정할 수 있는지 여부의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.