함수형 프로그래밍-참조로 호출
Call by Reference에서 original value is changed인수의 참조 주소를 전달하기 때문입니다. 실제 인수와 형식 인수는 동일한 주소 공간을 공유하므로 함수 내부의 값 변경은 함수 내부 및 외부에 반영됩니다.
C ++에서 참조로 호출
다음 프로그램은 C ++에서 Call by Value가 어떻게 작동하는지 보여줍니다.
#include <iostream>
using namespace std;
void swap(int *a, int *b) {
int temp;
temp = *a;
*a = *b;
*b = temp;
cout<<"\n"<<"value of a inside the function: "<<*a;
cout<<"\n"<<"value of b inside the function: "<<*b;
}
int main() {
int a = 50, b = 75;
cout<<"\n"<<"value of a before sending to function: "<<a;
cout<<"\n"<<"value of b before sending to function: "<<b;
swap(&a, &b); // passing value to function
cout<<"\n"<<"value of a after sending to function: "<<a;
cout<<"\n"<<"value of b after sending to function: "<<b;
return 0;
}
다음과 같은 출력이 생성됩니다.
value of a before sending to function: 50
value of b before sending to function: 75
value of a inside the function: 75
value of b inside the function: 50
value of a after sending to function: 75
value of b after sending to function: 50
Python에서 참조로 호출
다음 프로그램은 Python에서 Call by Value가 작동하는 방식을 보여줍니다.
def swap(a,b):
t = a;
a = b;
b = t;
print "value of a inside the function: :",a
print "value of b inside the function: ",b
return(a,b)
# Now we can call swap function
a = 50
b =75
print "value of a before sending to function: ",a
print "value of b before sending to function: ",b
x = swap(a,b)
print "value of a after sending to function: ", x[0]
print "value of b after sending to function: ",x[1]
다음과 같은 출력이 생성됩니다.
value of a before sending to function: 50
value of b before sending to function: 75
value of a inside the function: 75
value of b inside the function: 50
value of a after sending to function: 75
value of b after sending to function: 50