Récapitulatif : Pointeurs comme arguments de fonction
Fait partie de la section Logic & Flow du Journey C de Coddy — leçon 30 sur 63.
Défi
FacileÉcrivez un programme en C qui implémente une fonction pour trouver à la fois les valeurs minimale et maximale dans un tableau en utilisant des arguments de type pointeur. Votre programme doit :
- Créez une fonction nommée
findMinMaxqui prend quatre paramètres :- Un tableau d'entiers
- La taille du tableau
- Un pointeur vers un entier pour stocker la valeur minimale
- Un pointeur vers un entier pour stocker la valeur maximale
- À l'intérieur de la fonction
findMinMax, parcourez le tableau pour trouver les valeurs minimale et maximale - Utilisez l'opérateur de déréférencement pour stocker la valeur minimale à l'adresse pointée par le pointeur min
- Utilisez l'opérateur de déréférencement pour stocker la valeur maximale à l'adresse pointée par le pointeur max
- Dans la fonction
main, lisez un entiernreprésentant le nombre d'éléments du tableau - Lisez
nvaleurs entières et stockez-les dans un tableau - Déclarez deux variables entières
minValueetmaxValuepour stocker les résultats - Appelez la fonction
findMinMax, en passant le tableau, sa taille, et les adresses deminValueetmaxValue - Affichez les résultats au format :
Minimum: [value]etMaximum: [value]
Par exemple, si l'entrée est :
5
12 7 23 4 18Votre sortie devrait être :
Minimum: 4
Maximum: 23Ce défi démontre la technique puissante consistant à utiliser plusieurs arguments de type pointeur pour renvoyer plusieurs valeurs à partir d'un seul appel de fonction, permettant à la fonction de modifier des variables dans la portée de la fonction appelante.
Essayez vous-même
#include <stdio.h>
// TODO : Écrivez votre fonction findMinMax ici
int main() {
int n;
scanf("%d", &n);
int arr[n];
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
int minValue, maxValue;
// TODO : Appelez la fonction findMinMax ici
printf("Minimum: %d\n", minValue);
printf("Maximum: %d\n", maxValue);
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