Conditions préalables:
Les pointeurs sont des représentations symboliques d'adresses. Ils permettent aux programmes de simuler des appels par référence ainsi que de créer et de manipuler des structures de données dynamiques. L'itération sur des éléments dans des tableaux ou d'autres structures de données est l'une des principales utilisations des pointeurs.
L'adresse de la variable avec laquelle vous travaillez est attribuée à la variable pointeur qui pointe vers le même type de données (comme un int ou une chaîne).
Syntaxe :
datatype *var_name;>
Adresse de la fonction : Nous savons tous que le code de chaque fonction réside en mémoire, donc chaque fonction a une adresse comme toutes les autres variables du programme. Le nom d'une fonction peut être utilisé pour trouver l'adresse de la fonction. Nous pouvons obtenir l’adresse d’une fonction en écrivant simplement le nom de la fonction sans parenthèses dans la fonction.
nœud de liste Java
Pour en savoir plus, référez-vous à l'article – adresse de la fonction .
Pointeur de fonction en C++
- Le pointeur de fonction est utilisé pour pointer des fonctions, de la même manière, les pointeurs sont utilisés pour pointer des variables.
- Il est utilisé pour enregistrer l’adresse d’une fonction.
- Le pointeur de fonction est soit utilisé pour appeler la fonction, soit il peut être envoyé comme argument à une autre fonction.

Pointeur de fonction en C++
Syntaxe :
return_type (*FuncPtr) (parameter type, ....);>
Référencement et déréférencement du pointeur de fonction en C++
Semblable au pointeur utilisé avec les variables, nous effectuons le référencement et le déréférencement avec un pointeur de fonction.
Référencement : Lorsque le pointeur se voit attribuer l'adresse de la fonction qui lui est associée, ce processus est appelé référencement.
Déréférencement : Lorsque nous utilisons l'opérateur (*) pour obtenir la valeur stockée dans le pointeur.
Syntaxe:
// Declaring return_type (*FuncPtr) (parameter type, ....); // Referencing FuncPtr= function_name; // Dereferencing data_type x=*FuncPtr;>
Pointeur de fonction utilisé pour appeler la fonction
En cela, nous voyons comment pointer un pointeur vers une fonction et l’appeler en utilisant ce pointeur. C'est un moyen efficace d'utiliser
Exemple:
C++
liste des utilisateurs MySQL
// C++ program to implementation> // Function Pointer> #include> using> namespace> std;> int> multiply(>int> a,>int> b) {>return> a * b; }> int> main()> {> >int> (*func)(>int>,>int>);> >// func is pointing to the multiplyTwoValues function> >func = multiply;> >int> prod = func(15, 2);> >cout <<>'The value of the product is: '> << prod << endl;> >return> 0;> }> |
>
>Sortir
The value of the product is: 30>
Dans le programme ci-dessus, nous déclarons une fonction multiplier où nous multiplions deux éléments a et b, puis renvoyons le résultat. Mais, plutôt que d'appeler directement la fonction, nous utilisons un pointeur de fonction prod qui fait le même travail pour nous.
Passer un pointeur de fonction en paramètre
Lors de la déclaration d'un pointeur de fonction pour stocker l'adresse mémoire de la fonction mais, lorsque l'on souhaite transmettre la valeur de retour à la fonction suivante. Nous disposons de deux méthodes pour effectuer cette tâche. Tout d’abord, transmettez la valeur que nous avons obtenue ou transmettez ensuite le pointeur de fonction qui existe déjà.
tri à bulles java
Exemple:
C++
// C++ Program for demonstrating> // function pointer as pointer> #include> using> namespace> std;> const> int> a = 15;> const> int> b = 2;> // Function for Multiplication> int> multiply() {>return> a * b; }> // Function containing function pointer> // as parameter> void> print(>int> (*funcptr)())> {> >cout <<>'The value of the product is: '> << funcptr()> ><< endl;> }> // Driver Function> int> main()> {> >print(multiply);> >return> 0;> }> |
>
>Sortir
The value of the product is: 30>
Complexité temporelle : O(1).
Espace auxiliaire : O(1).
Dans le programme ci-dessus, nous déclarons une fonction de multiplication dans laquelle nous multiplions 2 variables a et b. Nous passons le pointeur de fonction en tant que paramètre dans la fonction d'impression, ici nous utilisons le pointeur de fonction pour calculer la valeur à partir de la fonction de multiplication puis cette valeur dans la fonction d'impression.