Programmation en C – Passage d’un pointeur vers une fonction en C

La programmation C permet de passer un pointeur à une fonction. Pour ce faire, déclarez le paramètre de la fonction en tant que type de pointeur. Voici un exemple simple où nous passons un pointeur long non signé à une fonction et changeons la valeur dans la fonction qui renvoie dans la fonction d’appel.

#include <stdio.h>
#include <time.h>
 
void getSeconds(unsigned long *p);

int main () {

   unsigned long s;
   getSeconds( &s);

   /* afficher la valeur actuelle */
   printf("Nombre de secondes: %ldn", s);

   return 0;
}

void getSeconds(unsigned long *p) {
   /* obtenir le nombre actuel de secondes */
   *p = time( NULL );
   return;
}

 
 
Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant

Nombre de secondes: 1514067212

La fonction, qui peut accepter un pointeur, peut également accepter un tableau comme indiqué dans l’exemple suivant

#include <stdio.h>
 
/* déclaration de fonction */
double getMoy(int *arr, int size);
 
int main () {

   /*  un tableau int avec 5 éléments */
   int tab[5] = {999, 8, 4, 14, 10};
   double moy;
 
   /* passer le pointeur vers le tableau en tant qu'argument */
   moy= getMoy( tab, 5 ) ;
 
   /* afficher la valeur retournée  */
   printf("La valeur moyenne est: %fn", moy);
   return 0;
}

double getMoy(int *tab, int size) {

   int  i, sum = 0;       
   double moy;          
 
   for (i = 0; i < size; ++i) {
      sum += tab[i];
   }
 
   moy= (double)sum / size;
   return moy;
}

Lorsque le code ci-dessus est compilé ensemble et exécuté, il produit le résultat suivant :

La valeur moyenne est: 207.000000

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *