전에 '함수의 작동 방법' 편에서 'Call by Value'를 배웠습니다. 그건 변수의 값이 복사되어서 간 것이고, 실제 변수의 값은 바뀌지 않는다고 했습니다. 그런데 이 상황을 보실까요?
int add(int *x, int *y){
*x += *y;
return *x;
}
int main(){
int a = 5, b = 5;
printf("%d %d", add(a, b), a);
}
이렇게 하면 매개변수가 포인터 변수가 되면서 함수가 작동 할 때 a, b의 실인수 값이 바뀝니다. 그래서 출력문은 10, 10이 되는 것이죠.

