>  기사  >  백엔드 개발  >  C++ 함수에서 참조 매개변수 및 포인터 매개변수의 고급 사용

C++ 함수에서 참조 매개변수 및 포인터 매개변수의 고급 사용

WBOY
WBOY원래의
2024-04-21 09:39:01458검색

C++ 함수의 참조 매개변수(기본적으로 변수 별칭, 참조를 수정하면 원래 변수가 수정됨)와 포인터 매개변수(원래 변수의 메모리 주소 저장, 포인터 역참조를 통해 변수 수정)는 변수를 전달하고 수정할 때 사용법이 다릅니다. 참조 매개변수는 생성자나 할당 연산자에 전달될 때 복사 오버헤드를 피하기 위해 원래 변수(특히 대규모 구조)를 수정하는 데 자주 사용됩니다. 포인터 매개변수는 메모리 위치를 유연하게 가리키거나, 동적 데이터 구조를 구현하거나, 선택적 매개변수를 나타내기 위해 널 포인터를 전달하는 데 사용됩니다.

C++ 函数中引用参数和指针参数的高级用法

C++ 함수에서 참조 매개변수와 포인터 매개변수의 고급 사용법

C++ 함수에서 참조 매개변수와 포인터 매개변수를 사용하면 변수를 다양한 방식으로 전달하고 수정할 수 있습니다. 차이점을 이해하고 적절하게 사용하는 것이 중요합니다.

참조 매개변수

참조 매개변수는 본질적으로 변수의 별칭입니다. 참조 매개변수에 대한 모든 변경 사항은 원래 변수에 반영됩니다.

구문: ​​

void func(int& ref_param)
{
    ref_param++; // 修改引用参数会修改原始变量
}

포인터 매개변수

포인터 매개변수는 원래 변수의 메모리 주소를 저장합니다. 원래 변수는 포인터를 통해 액세스하고 수정할 수 있지만 복사본은 생성되지 않습니다.

구문: ​​

void func(int* ptr_param)
{
    *ptr_param++ // 通过解引用指针可以修改原始变量
}

사용 시나리오

  • 참조 매개변수:

    • 함수 내에서 원래 변수를 수정해야 하는 경우
    • 복사 오버헤드를 피하기 위해 큰 구조 또는 클래스 객체를 전달
    • 생성자 또는 할당 연산자에 대한 비상수 참조로 전달된 객체 배치
  • 포인터 매개변수:

    • 다른 메모리 위치를 유연하게 가리켜야 하는 경우
    • 연결된 목록과 같은 동적 데이터 구조 구현
    • 선택적 매개변수 표시에 null 포인터 전달

실용 사례:

참조 매개변수를 사용하여 두 숫자 교환

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

포인터 매개변수를 사용하여 배열에 액세스

void printArray(int* arr, int n)
{
    for (int i = 0; i < n; i++)
    {
        cout << arr[i] << " ";
    }
    cout << endl;
}

위 내용은 C++ 함수에서 참조 매개변수 및 포인터 매개변수의 고급 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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