Menu
Coddy logo textTech

Les tableaux comme arguments de fonction

Fait partie de la section Fundamentals du Journey C de Coddy — leçon 58 sur 63.

Les tableaux peuvent être passés comme arguments à des fonctions en C. Lorsqu'un tableau est passé à une fonction, ce qui est réellement passé est l'adresse mémoire du premier élément.

Déclarez un tableau et une fonction qui le prend comme argument :

void displayArray(int arr[], int size) {
    for(int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
}

Créez un tableau et appelez la fonction :

int numbers[5] = {10, 20, 30, 40, 50};
displayArray(numbers, 5);

Lorsque vous passez un tableau à une fonction, les modifications apportées au tableau à l'intérieur de la fonction affecteront le tableau d'origine :

void doubleValues(int arr[], int size) {
    for(int i = 0; i < size; i++) {
        arr[i] = arr[i] * 2;
    }
}

// Appeler la fonction
doubleValues(numbers, 5);
// Maintenant numbers contient : {20, 40, 60, 80, 100}
challenge icon

Défi

Facile

Créez une fonction nommée sumArray qui prend deux arguments :

  • Un tableau d'entiers (arr).
  • Un entier (size) représentant la taille du tableau.

La fonction doit calculer et retourner la somme de tous les éléments du tableau.

Ensuite, dans la fonction main :

  1. Lisez un entier n (la taille du tableau).
  2. Lisez n entiers et stockez-les dans un tableau.
  3. Appelez la fonction sumArray avec le tableau.
  4. Affichez la somme au format : "Sum: X" (où X est la somme).

Aide-mémoire

Les tableaux sont passés aux fonctions par référence (adresse mémoire du premier élément) :

void displayArray(int arr[], int size) {
    for(int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
}

Appelez la fonction avec le nom du tableau et sa taille :

int numbers[5] = {10, 20, 30, 40, 50};
displayArray(numbers, 5);

Les modifications apportées au tableau à l'intérieur de la fonction affectent le tableau d'origine :

void doubleValues(int arr[], int size) {
    for(int i = 0; i < size; i++) {
        arr[i] = arr[i] * 2;
    }
}

Essayez vous-même

#include <stdio.h>

// Écrivez votre fonction sumArray ici

int main() {
    int n;
    scanf("%d", &n);
    
    int arr[n];
    for(int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    
    // Appelez la fonction sumArray et affichez le résultat
    
    return 0;
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fundamentals