본문 바로가기
카테고리 없음

[C] Call by Value와 Call by Reference

by 일사만루병살 2010. 4. 13.

Call by Value : 함수에 인수를 전달할때 Copy 해서 전달
     
int main()
{
          sum(10,20);

          return 0;
}

int sum(int A, int B)       //int A,B에 10,20이 전달 될때  직접 Copy 하여 전달 되므로
{                                  Call by Value 이다.
                  return A+B;
}






Call by Reference : 함수에 인수를 전달할때 포인터형 변수(=주소)를 전달
int main()
{
          int x= 10, y=20;

          sum(&x, &y);

          return 0;
}

int sum(int *A, int *B)       //int *A,*B에 인수가 전달될때 int *A=&x *B=&y 로 전달되어서{                                    A와 B에는 x,y의 주소값으로 전달 되고 주소값에 있는 값을 
                             참조 하여 사용
                  return *A+*B;
}