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}Défi
FacileCré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 :
- Lisez un entier n (la taille du tableau).
- Lisez n entiers et stockez-les dans un tableau.
- Appelez la fonction sumArray avec le tableau.
- 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;
}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
2Variables
Types de donnéesEntiersFloat - DoubleCaractèresBooléensConstantesLes bases de printfRègles de nommage des variablesType Casting Partie 1Type Casting Partie 2Défi récapitulatif5Entrées & Sorties
Spécificateurs de formatBases de scanfDéfi récapitulatif n°1Validation des entréesDéfi récapitulatif n°28Tableaux
Déclaration de tableauxAccès aux élémentsModification d'élémentsTableaux multidimensionnelsDéfi récapitulatif n°1Les tableaux comme arguments de fonctionAlgorithmes de tableauxDéfi récapitulatif n°23Opérateurs
Opérateurs arithmétiquesOpérateur moduloIncrémentation/DécrémentationOpérateurs d'affectationOpérateurs relationnelsOpérateurs logiques - Partie 1Opérateurs logiques - Partie 2Opérateurs logiques - Partie 3Défi récapitulatif