C++ Passage de pointeurs à des fonctions

Pointeurs C++

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.4

Pointeurs C++

autres extensions