레이드리안 2011. 8. 17. 16:01

Call By Value 란? 함수에 값을 넘겨줌(복사값을 전달함으로 원본값이 변하지않음)
                              단점: 값을 넘겨줄때마다 고비용. 복사손실 단점


#include<stdio.h>
void swap(int imsi_x, int imsi_y);
void main()
{
   int x=10, y=20;
   printf("함수호출전 x= %d, y=%d", x,y);

   swap(x,y);

   printf("함수호출후 x=%d, y=%d, x,y);
}

void swap(int imsi_x, int imsi_y)
{
   int  temp =0;
   temp = imsi_x;
   imsi_x = imsi_y;
   imsi_y= temp;
  
   printf("swap 함수안의  imsi_x = %d, imsi_y= %d", imsi_x,imsi_y);
}


첫번째 main 함수출력값:   10,20
두번째 swap 함수출력값:   20,10
세번째 main 함수출력값:   10,20

*swap 함수가 실행될때 main함수에선 10과 20이라는 값이 복사되어 넘어감
 swap함수가 끝나고 main함수로 돌아왔을때 값이 바뀌지 않음.