본문 바로가기
C++/참조타입

[C++] 참조자가 함수의 매개변수인 경우 (call-by-reference)

by bigpicture 2022. 8. 17.
반응형

함수를 호출하는 두가지 방식은 아래와 같습니다. 

Call-by-value
Call-by-reference

Call-by-value 는 입력된 변수의 값만 복사하여 매개변수에 저장하는 방식입니다. Call-by-reference 는 입력된 변수의 주소값을 전달받아, 함수 밖에 선언된 변수를 조작할 수 있게 합니다. Call-by-reference 는 아래와 같이 포인터를 이용하여 매개변수를 정의합니다. 

int myfun(int* var1)
{
   함수내용
}


참조자를 이용하여 동일한 기능 구현이 가능합니다. 함수를 아래와 같이 선언하여도 위와 동일한 의미를 갖습니다. 

int myfun(int  &var1)
{
   함수내용
}


참조자를 함수의 매개변수로 사용하여 함수에 변수를 입력하면 변수의 값을 변경하는 함수를 만들어봤습니다 .

 

#include <iostream>

using namespace std;


void my_fun(int &val)
{
    val=val+3;
}


int main()
{
    int a=3;
    cout<<a<<endl; //a값 출력
    
    my_fun(a); //함수 실행
    cout<<a<<endl; //변경된 a값 출력


    return 0;
}

//결과
//3
//6

 

함수 실행 전 a값은 3이고, 함수 실행 후 a값은 6입니다. a값이 변경되는 것을 확인할 수 있습니다. 

반응형

'C++ > 참조타입' 카테고리의 다른 글

[C++] 참조자란 무엇인가  (0) 2022.08.12

댓글