48.0 함수에서 포인터 매개변수 사용하기
함수에서 값을 여러 개 반환하려면 어떻게 해야 할까요? 함수 안에서 return을 다음과 같이 작성하면 값을 여러 개 반환할 수 있지 않을까요?
return 10, 20, 30;
아쉽지만, 이런 문법은 지원하지 않습니다.
C 언어에서 값을 여러 개 반환하는 함수를 만들 때는 주로 포인터 매개변수를 사용합니다. 지금까지 매개변수는 함수에 값을 전달할 때 사용했고, 함수 바깥에서 값을 가져오는 용도로는 사용할 수 없었습니다. 즉, 다음과 같이 두 값을 더하는 add 함수는 반환값이 1개이고 매개변수 a와 b는 함수 안에서만 사용할 수 있었습니다.
하지만 함수에서 포인터 매개변수를 사용하면 함수 안에서 바뀐 내용을 함수 바깥에서도 알 수 있습니다. 따라서 함수 바깥으로 값을 전달할 수 있습니다. 다음은 함수에서 포인터 매개변수를 사용하여 두 변수의 값을 서로 바꾸는 swapNumber 함수인데 이 부분은 뒤에서 자세히 설명하겠습니다.
이번 유닛에서는 포인터 매개변수로 값을 여러 개 반환하는 방법뿐만 아니라 포인터 매개변수의 다양한 사용 방법을 알아보겠습니다. 참고로 포인터 매개변수는 개념이 다소 어려울 수 있습니다.