본문 바로가기
C++/C++ 문법

C++ 함수의 인자 전달 방식 (값, 참조, 주소)

by Sein_ 2025. 10. 13.
728x90

[Do it C++ 완전정복_ 147p]

함수의 인자 전달 방식 (3가지)

함수를 호출할 때 인자를 전달하는 방식 

 

 

1. 값에 의한 호출 (Call by Value)

  • 인자의 복사본이 함수로 전달됩니다.
  • 함수 안에서 값을 바꿔도 원본에는 영향이 없습니다.
void swapValue(int a, int b) {
    int temp = a;
    a = b;
    b = temp;
}

 

2. 참조에 의한 호출 (Call by Reference)

  • 인자의 원본을 직접 참조하여 전달합니다.
  • 함수 안에서 변경하면 원본도 함께 변경됩니다.
  • C++에서 레퍼런스(&) 로 구현합니다.
void swapRef(int& a, int& b) {  // 참조로 전달
    int temp = a;
    a = b;
    b = temp;
}

int main() {
    int x = 10, y = 20;
    swapRef(x, y);  // 원본 교환
    cout << "x=" << x << ", y=" << y << endl;  // x=20, y=10
}

 

3. 주소에 의한 호출 (Call by Address)

  • 인자의 주소(포인터) 를 함수에 전달합니다.
  • 함수 내에서 역참조(*) 를 통해 원본 데이터를 변경할 수 있습니다.
void swapPtr(int* a, int* b) {
    int temp = *a;
    *a = *b;
    *b = temp;
}

'C++ > C++ 문법' 카테고리의 다른 글

C++ 조건문 (if, switch)  (0) 2025.10.13
C++ 레퍼런스 변수 (참조 변수)  (0) 2025.10.13
C++ 구조체 (struct)  (1) 2025.10.13
C/C++ 메모리 구조  (0) 2025.10.13
C++ 동적 메모리 할당/해제 (new, delete)  (0) 2025.10.13