Call-by-value vs. call-by-reference

void swapValues(int *val1, int *val2)
{
    int temp;

    temp = *val1;
    *val1 = *val2;
    *val2 = temp;
}
int main()
{
    int a=10, b=50;

    swapValues(&a, &b);
}

이 경우에는 Call-by-reference(참조에 의한 값 전달)라고 할 수 있다. 변수의 주소 값이 전달된다.
swapValues() 함수가 끝나도 변경 사항은 여전하다.

void swapValues(int val1, int val2)
{
    int temp;
    temp = val1;
    val1 = val2;
    val2 = temp;
}
int main()
{
    int a=10, b=50;

    swapValues(a, b);
}

이 경우는 Call-by-value(값에 의한 호출)라고 할 수 있는데, 변수의 값이 복사되어 전달된다.
swapValues() 함수가 끝나면 main() 함수에서는 변경 사항이 여전하지 못하다.

Leave a Reply