본문 바로가기

C_C++

Call By Value VS. Call By Reference

Call By Value
- 값의 복사에 의한 함수의 호출.

------------------------------------
/* val_swap.c */
#include <stdio.h>

void swap(int a, int b);

int main(void)
{
int val1=10;
int val2=20;

swap(val1, val2);

printf("val1 : %d \n", val1);
printf("val2 : %d \n", val2);

return 0;
}

void swap(int a, int b)
{
int temp=a;
a=b;
b=temp;

printf("a : %d \n", a);
printf("b : %d \n", b);
}

결과값

------------------------------------------------------------


Call By Reference
- 참조(참조를 가능케 하는 주소 값)를 인자로 전달하는 형태의 함수.

------------------------------------
/* callbyreference.c */
#include <stdio.h>

void adder(int* pVal)
{
(*pVal)++;

printf("*pVal : %d", *pVal);

}


int main(void)
{
int val=10;

printf("val : %d \n", val);

adder(&val);

return 0;
}


결과값

------------------------------------------------------------

'C_C++' 카테고리의 다른 글

scanf 함수 호출 시 &를 붙이는 이유  (0) 2010.11.26
Call By Reference에 의한 Swap  (0) 2010.11.26
[펌] 유용한 URL  (0) 2010.11.24
배열이름과 포인터  (0) 2010.11.20
* (에스크립터)의 용도  (0) 2010.11.20