CS
Call by Reference 란?
배준오
2024. 3. 5. 23:24
반응형
Call by Reference란 참조 값으로 함수를 호출하는 개념입니다. 함수에서 함수 외부 메모리 공간을 참조할 때 사용하며, 함수 선언시 매개변수에 &를 사용해 변수의 위치를 받도록 하고 함수 내부에서는 위치를 준 변수를 일반 변수처럼 사용합니다.
다른 개념으로는 Call by Value(값에 의한 호출)이 있습니다. -> 외부 변수의 값을 복사해서 사용하기 때문에 안전하지만, 메모리 사용량이 늘어남
Call By Reference를 사용하면 함수 내부에서 외부 변수의 값을 직접 참조하기 때문에 빠르긴 하지만 외부 변수의 값의 변경이 일어납니다. 대표적으로 swap 로직이 있습니다.
#include <stdio.h>
void swap(int &num1, int &num2)
{
int temp = num1;
num1 = num2;
num2 = temp;
}
void main()
{
int a = 20, b = 60;
swap(a, b);
printf("a: %d, b: %d", a, b);
}
// a의 결과: 60, b의 결과: 20
반응형