더북(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
변수 a, b의 주소가 서로 다름

변수의 주소를 출력해 보니 main()함수에 선언한 변수 a의 주소가 00000014BDB3F994인데, swap()함수 안에서 변수 a의 주소는 00000014BDB3F970입니다. 이는 main()함수에 선언한 aswap()함수 안의 a는 서로 다른 변수라는 뜻입니다. 즉, swap()함수 안에서 다른 공간에 변수 a가 새로 만들어졌다는 뜻입니다. 이처럼 함수를 호출하면서 전달값으로 변수를 넘기면 호출한 함수 안에서는 변수 자체가 아닌 전달받은 변수의 값만 복사해서 사용합니다. 이를 값에 의한 호출(call by value)이라고 합니다.

그림 7-8 값에 의한 호출

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