Call by Value
#include <stdio.h>
void swap(int a, int b);
int main()
{
int val1 = 10;
int val2 = 20;
swap(val1,val2); // swap 호출 프린트문 출력
// main val1,val2값 출력 변동 없음
printf("val1 : %d\n",val1);
printf("val2 : %d\n",val2);
return 0;
}
void swap(int a, int b)
{
int temp = a; // a 를 temp에 저장해 둠
a = b; // a 를 b 로 바꿈
b = temp; // b 는 temp 즉 a값으로 변경
printf("a : %d \n",a);
printf("b : %d \n",b);
}
------------------------------------------------------------
Call by Refrence
#include <stdio.h>
void swap(int *a, int *b);
int main()
{
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);
}