Arrays als Funktionsargumente
Teil des Abschnitts Fundamentals der C-Journey von Coddy — Lektion 58 von 63.
Arrays können in C als Argumente an Funktionen übergeben werden. Wenn ein Array an eine Funktion übergeben wird, wird tatsächlich die Speicheradresse des ersten Elements übergeben.
Deklarieren Sie ein Array und eine Funktion, die dieses als Argument entgegennimmt:
void displayArray(int arr[], int size) {
for(int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}Erstellen Sie ein Array und rufen Sie die Funktion auf:
int numbers[5] = {10, 20, 30, 40, 50};
displayArray(numbers, 5);Wenn Sie ein Array an eine Funktion übergeben, wirken sich Änderungen, die innerhalb der Funktion am Array vorgenommen werden, auf das ursprüngliche Array aus:
void doubleValues(int arr[], int size) {
for(int i = 0; i < size; i++) {
arr[i] = arr[i] * 2;
}
}
// Funktion aufrufen
doubleValues(numbers, 5);
// Jetzt enthält numbers: {20, 40, 60, 80, 100}Aufgabe
EinfachErstellen Sie eine Funktion namens sumArray, die zwei Argumente entgegennimmt:
- Ein Integer-Array (arr).
- Einen Integer (size), der die Größe des Arrays darstellt.
Die Funktion soll die Summe aller Elemente im Array berechnen und zurückgeben.
Anschließend in der main-Funktion:
- Lesen Sie einen Integer n (die Größe des Arrays) ein.
- Lesen Sie n Integer ein und speichern Sie diese in einem Array.
- Rufen Sie die sumArray-Funktion mit dem Array auf.
- Geben Sie die Summe im Format: "Sum: X" aus (wobei X die Summe ist).
Spickzettel
Arrays werden an Funktionen per Referenz übergeben (Speicheradresse des ersten Elements):
void displayArray(int arr[], int size) {
for(int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}Rufen Sie die Funktion mit dem Array-Namen und der Größe auf:
int numbers[5] = {10, 20, 30, 40, 50};
displayArray(numbers, 5);Änderungen, die innerhalb der Funktion am Array vorgenommen werden, wirken sich auf das ursprüngliche Array aus:
void doubleValues(int arr[], int size) {
for(int i = 0; i < size; i++) {
arr[i] = arr[i] * 2;
}
}Probier es selbst
#include <stdio.h>
// Schreibe deine sumArray-Funktion hier
int main() {
int n;
scanf("%d", &n);
int arr[n];
for(int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// Rufe die sumArray-Funktion auf und gib das Ergebnis aus
return 0;
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Fundamentals
2Variablen
DatentypenIntegerFloat - DoubleZeichenBooleansKonstantenprintf GrundlagenBenennungsregeln für VariablenType Casting Teil 1Type Casting Teil 2Wiederholungs-Challenge3Operatoren
Arithmetische OperatorenModulo-OperatorInkrement/DekrementZuweisungsoperatorenRelationale OperatorenLogische Operatoren Teil 1Logische Operatoren Teil 2Logische Operatoren Teil 3Wiederholungs-Challenge