때때로 함수에서 여러 값을 반환해야 하는 경우가 있는데, 불행히도 C/C++에서는 이를 허용하지 않지만 몇 가지 영리한 방법을 사용하면 이 효과를 얻을 수 있습니다. 다음 글에서는 C/C++의 함수에서 여러 값을 반환하는 방법을 소개하겠습니다. 도움이 되셨으면 좋겠습니다. [추천 동영상 튜토리얼: C Language Tutorial, C++ Tutorial]
방법 1: 포인터 사용:
함수를 호출할 때 주소가 포함된 매개변수를 전달하고 포인터를 사용하여 값을 변경합니다. ; 그러면 수정된 값이 원래 매개변수가 됩니다.
코드 예시를 통해 어떻게 구현하는지 살펴보겠습니다.
예: 2개의 숫자를 입력하고 크기를 비교한 후 다시 출력합니다.
#include <stdio.h> void compare(int a, int b, int* add_great, int* add_small) { if (a > b) { // 变量a存储在指针变量*add_great所指向的地址中 // 变量b存储在指针变量*add_small所指向的地址中 *add_great = a; *add_small = b; } else { *add_great = b; *add_small = a; } } int main() { int great, small, x, y; printf("输入两个数字: \n"); scanf("%d%d", &x, &y); // 最后两个参数是通过给出内存位置的地址来传递的。 compare(x, y, &great, &small); printf("\n最大值为:%d,最小值为:%d", great, small); return 0; }
출력:
방법 2: 구조를 사용하여
구조는 사용자 정의 데이터 유형이므로, 두 개의 정수 변수를 포함하는 A 구조를 정의하고 더 큰 값과 더 작은 값을 이러한 변수에 저장한 다음 구조의 값을 사용할 수 있습니다.
예:
#include <stdio.h> struct greaterSmaller { int greater, smaller; }; typedef struct greaterSmaller Struct; Struct findGreaterSmaller(int a, int b) { Struct s; if (a > b) { s.greater = a; s.smaller = b; } else { s.greater = b; s.smaller = a; } return s; } int main() { int x, y; Struct result; printf("输入两个数字: \n"); scanf("%d%d", &x, &y); // 最后两个参数是通过给出内存位置的地址来传递的。 result = findGreaterSmaller(x, y); printf("\n最大值为:%d,最小值为:%d", result.greater, result.smaller); return 0; }
출력:
방법 3: 배열 사용
배열이 매개변수로 전달되면 해당 기본 주소가 함수에 전달됩니다. 배열은 변경 사항이 있으면 원래 배열로 변경됩니다.
참고: 이 방법은 반품된 품목이 동일한 유형인 경우에만 작동합니다.
예: 배열을 사용하여 여러 값을 반환하면 arr[0]에 더 큰 값이 저장되고 arr[1]에 더 작은 값이 저장됩니다.
#include <stdio.h> // 将较大的元素存储在arr[0]中 void findGreaterSmaller(int a, int b, int arr[]) { // Store the greater element at // 0th index of the array if (a > b) { arr[0] = a; arr[1] = b; } else { arr[0] = b; arr[1] = a; } } // Driver code int main() { int x, y; int arr[2]; printf("输入两个数字: \n"); scanf("%d%d", &x, &y); findGreaterSmaller(x, y, arr); printf("\n最大值为:%d,最小值为:%d", arr[0], arr[1]); return 0; }
출력:
그렇습니다. 모든 분들의 공부에 도움이 되는 글이 되었으면 좋겠습니다. 더 흥미로운 내용을 보려면 PHP 중국어 웹사이트의 관련 튜토리얼 열을 주의 깊게 살펴보세요! ! !
위 내용은 C/C++ 함수는 어떻게 여러 값을 반환합니까? (코드 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!