Heim > Artikel > Backend-Entwicklung > Wie geben C/C++-Funktionen mehrere Werte zurück? (Codebeispiel)
Manchmal müssen wir mehrere Werte von einer Funktion zurückgeben, leider lässt C/C++ dies nicht zu, aber wir können diesen Effekt durch einige clevere Methoden erreichen. Der folgende Artikel stellt Ihnen die Methode zur Rückgabe mehrerer Werte aus Funktionen in C/C++ vor. Ich hoffe, dass er für Sie hilfreich ist. [Empfohlene Video-Tutorials: C Language Tutorial, C++ Tutorial]
Methode 1: Durch Verwendung Zeiger:
Wenn eine Funktion aufgerufen wird, übergeben Sie den Parameter mit der Adresse und verwenden Sie den Zeiger, um seinen Wert auf diese Weise zu ändern. Der geänderte Wert wird zum ursprünglichen Parameter.
Sehen wir uns anhand von Codebeispielen an, wie man es implementiert.
Beispiel: 2 Zahlen eingeben, Größen vergleichen und erneut ausgeben
#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; }
Ausgabe:
Methode 2: Durch die Verwendung der Struktur
können wir eine Struktur definieren, die zwei ganzzahlige Variablen enthält, und diese dann verwenden Wert dieser Struktur.
Beispiel:
#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; }
Ausgabe:
Methode 3: Durch Verwendung des Arrays
Wenn ein Array als Argument übergeben wird, wird seine Basisadresse an die Funktion übergeben, sodass alle an der Kopie des Arrays vorgenommenen Änderungen auf das ursprüngliche Array übertragen werden.
Hinweis: Diese Methode funktioniert nur, wenn die zurückgegebenen Artikel vom gleichen Typ sind.
Beispiel: Wenn Sie ein Array verwenden, um mehrere Werte zurückzugeben, wird ein größerer Wert bei arr[0] und ein kleinerer Wert bei arr[1] gespeichert.
#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; }
Ausgabe:
Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird. Weitere spannende Inhalte finden Sie in den entsprechenden Tutorial-Kolumnen auf der chinesischen PHP-Website! ! !
Das obige ist der detaillierte Inhalt vonWie geben C/C++-Funktionen mehrere Werte zurück? (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!