Vereisten:
Pointers zijn symbolische representaties van adressen. Ze stellen programma's in staat call-by-reference te simuleren en dynamische datastructuren te creëren en te manipuleren. Het herhalen van elementen in arrays of andere datastructuren is een van de belangrijkste toepassingen van pointers.
Het adres van de variabele waarmee u werkt, wordt toegewezen aan de pointervariabele die naar hetzelfde gegevenstype verwijst (zoals een int of string).
Syntaxis :
datatype *var_name;>
Adres van functie: We weten allemaal dat de code van elke functie zich in het geheugen bevindt, dus elke functie heeft een adres zoals alle andere variabelen in het programma. De naam van een functie kan worden gebruikt om het adres van de functie te vinden. We kunnen het adres van een functie verkrijgen door simpelweg de naam van de functie zonder haakjes in de functie te schrijven.
Om hier meer over te weten, zie het artikel – adres van de functie.
Functieaanwijzer in C++
- De functieaanwijzer wordt gebruikt om functies aan te wijzen, op dezelfde manier worden de aanwijzers gebruikt om variabelen aan te wijzen.
- Het wordt gebruikt om het adres van een functie op te slaan.
- De functieaanwijzer wordt gebruikt om de functie aan te roepen of kan als argument naar een andere functie worden verzonden.

Functieaanwijzer in C++
Syntaxis :
return_type (*FuncPtr) (parameter type, ....);>
Verwijzen en derefereren van de functieaanwijzer in C++
Net als bij de aanwijzer die bij variabelen wordt gebruikt, voeren we verwijzingen en dereferenties uit met een functieaanwijzer.
Verwijzingen: Wanneer aan de pointer het adres wordt toegewezen van de functie die eraan moet worden gekoppeld, wordt dit proces refereren genoemd.
Dereferentie: Wanneer we de operator (*) gebruiken om de waarde op te halen die in de aanwijzer is opgeslagen.
Syntaxis:
// Declaring return_type (*FuncPtr) (parameter type, ....); // Referencing FuncPtr= function_name; // Dereferencing data_type x=*FuncPtr;>
Functieaanwijzer die wordt gebruikt om de functie aan te roepen
Hierin zien we hoe we een pointer naar een functie wijzen en deze aanroepen met behulp van die pointer. Het is een efficiënte manier van gebruik
Voorbeeld:
C++
// 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;> }> |
>
>Uitvoer
The value of the product is: 30>
In het bovenstaande programma declareren we een functie vermenigvuldigen waarbij we twee elementen a en b vermenigvuldigen, en vervolgens het resultaat retourneren. Maar in plaats van de functie rechtstreeks aan te roepen, gebruiken we een functie pointer prod die hetzelfde werk voor ons doet.
Een functieaanwijzer doorgeven als parameter
Bij het declareren van een functiewijzer wordt het geheugenadres van de functie opgeslagen, maar wanneer we de retourwaarde willen doorgeven aan de volgende functie. We hebben twee methoden om deze taak uit te voeren. Geef eerst de waarde door die we hebben gekregen of geef ten tweede de functieaanwijzer door die al bestaat.
Voorbeeld:
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;> }> |
>
>Uitvoer
The value of the product is: 30>
Tijdcomplexiteit: O(1).
Hulpruimte: O(1).
hoe verborgen apps op Android te openen
In het bovenstaande programma declareren we een vermenigvuldigingsfunctie waarin we 2 variabelen a en b vermenigvuldigen. We geven de functie pointer door als parameter in de printfunctie, hier gebruiken we de functie pointer om de waarde uit de vermenigvuldigingsfunctie te berekenen en vervolgens die waarde in de printfunctie.