Passer des pointeurs aux fonctions en C ++

C ++ vous permet de passer un pointeur vers une fonction. Pour ce faire, déclarez simplement le paramètre de fonction en tant que type de pointeur.

En suivant un exemple simple où nous passons un pointeur long non signé à une fonction et modifions la valeur à l'intérieur de la fonction qui se reflète dans la fonction appelante -

#include <iostream>
#include <ctime>
 
using namespace std;
void getSeconds(unsigned long *par);

int main () {
   unsigned long sec;
   getSeconds( &sec );

   // print the actual value
   cout << "Number of seconds :" << sec << endl;

   return 0;
}

void getSeconds(unsigned long *par) {
   // get the current number of seconds
   *par = time( NULL );
   
   return;
}

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

Number of seconds :1294450468

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

#include <iostream>
using namespace std;
 
// function declaration:
double getAverage(int *arr, int size);
 
int main () {
   // an int array with 5 elements.
   int balance[5] = {1000, 2, 3, 17, 50};
   double avg;
 
   // pass pointer to the array as an argument.
   avg = getAverage( balance, 5 ) ;
 
   // output the returned value 
   cout << "Average value is: " << 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 le résultat suivant -

Average value is: 214.4