C++ Passage de pointeurs à des fonctions
C++ vous permet de passer des pointeurs à des fonctions en déclarant simplement les paramètres de la fonction comme des types pointeurs.
Dans l'exemple suivant, nous passons un pointeur vers un unsigned long à la fonction, et modifions cette valeur à l'intérieur de la fonction :
Exemple
#include <iostream>
#include <ctime>
using namespace std;
// Quand on écrit des fonctions, c'est une bonne habitude de déclarer d'abord la fonction, puis de la définir
void getSeconds(unsigned long *par);
int main ()
{
unsigned long sec;
getSeconds( &sec );
// Afficher la valeur réelle
cout << "Nombre de secondes :" << sec << endl;
return 0;
}
void getSeconds(unsigned long *par)
{
// Obtenir les secondes actuelles
*par = time( NULL );
return;
}
Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :
Number of seconds :1294450468
Les fonctions qui peuvent accepter des pointeurs comme paramètres peuvent aussi accepter des tableaux comme paramètres, comme montré ci-dessous :
Exemple
#include <iostream>
using namespace std;
// Déclaration de fonction
double getAverage(int *arr, int size);
int main ()
{
// Un tableau d'entiers de 5 éléments
int balance[5] = {1000, 2, 3, 17, 50};
double avg;
// Passer un pointeur vers un tableau comme argument
avg = getAverage( balance, 5 ) ;
// Afficher la valeur de retour
cout << "La valeur moyenne est : " << avg << endl;
return 0;
}
double getAverage(int *arr, int size)
{
int i, sum = 0;
double avg;
for (i = 0; i < size; ++i)
{
sum += arr[i];
}
avg = double(sum) / size;
return avg;
}
Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants :
Average value is: 214.4autres extensions