void swap(int x, int y); void main() { int a=100, b = 200; printf(“a= %d b=%d (main()함수)n”, a, b); swap(a, b); printf(“a= %d b=%d (main()함수)n”, a, b); } void swap(int x, int y) <출력 결과는? > { int z; z = x; x = y; y = z; printf(“x= %d y= %d (swap 함수)n”, x, y); } 한국재활복지대학 21
void swap(int *x, int *y); void main() { int a=100, b = 200; printf(“a= %d b=%d (main()함수)n”, a, b); swap(&a, &b); printf(“a= %d b=%d (main()함수)n”, a, b); } void swap(int *x, int *y) <출력 결과는? > { int z; z = *x; *x = y; *y = z; printf(“x= %d y= %d (swap 함수)n”, *x, *y); } 한국재활복지대학 22
void main( ) { int p =10; int q = 50; swap(p, q); swap(&p, &q); } void swap(int x, int y) { int temp; temp = x; x = y; y = temp; } Call By Value void swap(int *x, int *y) { int temp; temp = *x; *x = *y; *y = temp; Call By Reference } 한국재활복지대학 23
void main( ) { int p =10; int q = 50; swap(p, q); printf(“…”); 변수 주소 값 p 0 x 10010 10 q 0 x 10014 50 } void swap(int x, int y) { int temp; temp = x; x = y; y = temp; } Printf를 하는 시점에서 변화 없음 x 0 x 50010 10 y 0 x 50014 50 temp 0 x 50018 10 한국재활복지대학 24
void main( ) { int p =10; int q = 50; swap(&p, &q); printf(“…”); 변수 주소 값 p 0 x 10010 10 ==> 50 q 0 x 10014 50 ==> 10 } void swap(int *x, int *y) { int temp; temp = *x; *x = *y; *y = temp; } Printf를 하는 시점에서 변화 x 0 x 50010 0 x 10010 y 0 x 50014 0 x 10014 temp 0 x 50018 10 한국재활복지대학 25