C 또는 C++에서는 함수에서 직접 여러 값을 반환할 수 없습니다. 이 섹션에서는 몇 가지 트릭을 사용하여 함수에서 둘 이상의 값을 반환하는 방법을 볼 것입니다.
"call by address" 또는 "call by reference"라는 방법을 사용하여 함수에서 둘 이상의 값을 반환할 수 있습니다. 호출자 함수에서 두 개의 변수를 사용하여 결과를 저장하고 함수는 포인터 유형 데이터를 사용합니다. 따라서 데이터의 주소를 전달해야 합니다.
이 예제에서는 하나의 함수에서 두 개의 숫자를 나눈 후 몫과 나머지를 반환할 수 있는 함수를 정의하는 방법을 볼 것입니다.
예시 코드
#include<stdio.h> void div(int a, int b, int *quotient, int *remainder) { *quotient = a / b; *remainder = a % b; } main() { int a = 76, b = 10; int q, r; div(a, b, &q, &r); printf("Quotient is: %d\nRemainder is: %d\n", q, r); }
출력
Quotient is: 7 Remainder is: 6