더북(TheBook)

실행결과 icon_con

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)이라고 합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.