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

