Récapitulatif : Parcours de tableau par pointeur
Fait partie de la section Logic & Flow du Journey C de Coddy — leçon 11 sur 63.
Défi
FacileÉcrivez un programme en C qui implémente une fonction pour calculer la somme de tous les éléments d'un tableau d'entiers en utilisant l'arithmétique des pointeurs et l'équivalence tableau-pointeur. Votre programme doit :
- Créer une fonction nommée
calculateSumqui prend deux paramètres :- Un pointeur vers un entier (
int *arr) représentant le tableau - Un entier (
size) représentant le nombre d'éléments dans le tableau
- Un pointeur vers un entier (
- À l'intérieur de la fonction
calculateSum:- Initialiser une variable
sumà 0 - Créer une variable pointeur
ptret la configurer pour qu'elle pointe vers le début du tableau - Utiliser une boucle pour parcourir le tableau en utilisant l'arithmétique des pointeurs
- À chaque itération, ajouter la valeur pointée par
ptràsum - Incrémenter le pointeur pour passer à l'élément suivant
- Retourner la somme calculée
- Initialiser une variable
- Dans la fonction
main:- Lire un entier
nreprésentant la taille du tableau - Déclarer un tableau d'entiers de taille
n - Lire
nentiers depuis l'entrée pour remplir le tableau - Appeler la fonction
calculateSumavec le tableau et sa taille - Afficher le résultat au format : "Sum: [value]"
- Lire un entier
La fonction doit utiliser l'arithmétique des pointeurs pour le parcours du tableau - n'utilisez pas la notation d'indexation de tableau comme arr[i]. Utilisez plutôt le déréférencement de pointeur et les opérations d'incrémentation pour accéder aux éléments du tableau.
Par exemple, si l'entrée est :
5
10 20 30 40 50Votre sortie devrait être :
Sum: 150Ce défi teste votre compréhension de la manière dont les fonctions peuvent accepter des tableaux comme paramètres de pointeur, comment utiliser l'arithmétique des pointeurs pour parcourir les tableaux efficacement, et comment les noms de tableaux sont automatiquement convertis en pointeurs lorsqu'ils sont passés aux fonctions.
Essayez vous-même
#include <stdio.h>
// À FAIRE : Écrivez votre fonction calculateSum ici
int main() {
int n;
scanf("%d", &n);
int arr[n];
// Lire les éléments du tableau
for(int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
// À FAIRE : Appeler la fonction calculateSum et stocker le résultat
// À FAIRE : Afficher le résultat au format "Sum: [value]"
return 0;
}Toutes les leçons de Logic & Flow
1Les bases des pointeurs
Qu'est-ce qu'un pointeur ?Déclaration de pointeursL'opérateur d'adresse (&)L'opérateur de déréférencement (*)Pointeurs NULLRécapitulatif : Les bases des pointeurs4Projet : Utilitaire de texte simple
Présentation du projetCompter les caractères2Pointeurs et Tableaux
Noms de tableaux comme pointeursÉléments de tableau - PointeursArithmétique des pointeursComparaison de pointeursRécapitulatif : Parcours de tableau par pointeur5Pointeurs et fonctions
Passage par valeurPassage de pointeurs aux fonctionsModifier des variables via des pointeursUn exemple classique : SwapPassage de tableaux aux fonctionsRécapitulatif : Pointeurs comme arguments de fonction3Tableaux de caractères et chaînes
Les chaînes comme tableaux de charLe terminateur nulSaisie de chaînes avec scanfUtilisation de strlen()Utilisation de strcpy()Utilisation de strcat()Utilisation de strcmp()Récapitulatif : Fonctions de base sur les chaînes