실행결과 |
a의 주소 : 00000014BDB3F994 b의 주소 : 00000014BDB3F9B4 swap() 함수 호출 전 => a : 10, b : 20 swap() 함수 안에서 a의 주소 : 00000014BDB3F970 swap() 함수 안에서 b의 주소 : 00000014BDB3F978 swap() 함수 안 => a : 20, b : 10 swap() 함수 호출 후 => a : 10, b : 20 swap_addr() 함수 호출 전 => a : 10, b : 20 swap_addr() 함수 안 => a : 20, b : 10 swap_addr() 함수 호출 후 => a : 20, b : 10 swap_addr() 함수를 호출한 후 변수 a, b의 값이 서로 바뀜 |
swap_addr()함수를 호출하기 전에는 변수 a의 값이 10, b의 값이 20이었는데, swap_addr()함수를 호출한 후에는 a의 값은 20, b의 값은 10으로 바뀌었습니다. 값이 아닌 주소를 전달하니 주소에 저장된 값을 바꿨습니다. 이처럼 함수를 호출하면서 전달값으로 변수의 주소를 넘기면 호출한 함수 안에서 변수의 주소를 참조해 값을 사용하거나 수정할 수 있습니다. 이를 참조에 의한 호출(call by reference)이라고 합니다.