Menu
Coddy logo textTech

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}
challenge icon

Aufgabe

Einfach

Erstellen 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:

  1. Lesen Sie einen Integer n (die Größe des Arrays) ein.
  2. Lesen Sie n Integer ein und speichern Sie diese in einem Array.
  3. Rufen Sie die sumArray-Funktion mit dem Array auf.
  4. 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;
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Fundamentals