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