Predpogoji:
Kazalci so simbolične predstavitve naslovov. Programom omogočajo simulacijo klica po sklicu ter ustvarjanje in upravljanje dinamičnih podatkovnih struktur. Ponavljanje po elementih v nizih ali drugih podatkovnih strukturah je ena od glavnih uporab kazalcev.
Naslov spremenljivke, s katero delate, je dodeljen spremenljivki kazalca, ki kaže na isto vrsto podatkov (na primer int ali niz).
Sintaksa :
datatype *var_name;>
Naslov funkcije: Vsi vemo, da je koda vsake funkcije v pomnilniku, zato ima vsaka funkcija naslov kot vse druge spremenljivke v programu. Ime funkcije lahko uporabite za iskanje naslova funkcije. Naslov funkcije lahko dobimo tako, da samo zapišemo ime funkcije brez oklepaja v funkcijo.
Če želite izvedeti več o tem, glejte članek – naslov funkcije.
Funkcijski kazalec v C++
- Funkcijski kazalec se uporablja za kazanje funkcij, podobno se kazalci uporabljajo za kazanje spremenljivk.
- Uporablja se za shranjevanje naslova funkcije.
- Funkcijski kazalec se uporablja za klic funkcije ali pa se pošlje kot argument drugi funkciji.

Funkcijski kazalec v C++
oblazinjenje css
Sintaksa :
return_type (*FuncPtr) (parameter type, ....);>
Sklicevanje in dereferenciranje funkcijskega kazalca v C++
Podobno kot kazalec, ki se uporablja s spremenljivkami, izvajamo sklicevanje in dereferenciranje s kazalcem funkcije.
Sklicevanje na: Ko je kazalcu dodeljen naslov funkcije, ki bo z njim povezana, se ta postopek imenuje sklicevanje.
Dereferenciranje: Ko uporabimo (*)operator, da dobimo vrednost, shranjeno v kazalcu.
Sintaksa:
// Declaring return_type (*FuncPtr) (parameter type, ....); // Referencing FuncPtr= function_name; // Dereferencing data_type x=*FuncPtr;>
Kazalec funkcije, ki se uporablja za klic funkcije
V tem vidimo, kako pokažemo kazalec na funkcijo in jo pokličemo s tem kazalcem. Je učinkovit način uporabe
primer:
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;> }> |
>
>Izhod
The value of the product is: 30>
V zgornjem programu deklariramo funkcijo množenja, kjer množimo dva elementa a in b, nato pa vrnemo rezultat. Toda namesto neposrednega klica funkcije uporabljamo proizvod kazalca funkcije, ki opravlja isto delo namesto nas.
Posredovanje funkcijskega kazalca kot parametra
Ko deklariramo funkcijski kazalec za shranjevanje pomnilniškega naslova funkcije, ko pa želimo vrnjeno vrednost posredovati naslednji funkciji. Za izvedbo te naloge imamo dve metodi. Najprej bodisi posredujemo vrednost, ki smo jo dobili, bodisi drugič posredujemo funkcijski kazalec, ki že obstaja.
primer:
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;> }> |
>
>Izhod
The value of the product is: 30>
Časovna zahtevnost: O(1).
Pomožni prostor: O(1).
jedro java
V zgornjem programu deklariramo funkcijo množenja, v kateri pomnožimo 2 spremenljivki a in b. Kazalec funkcije posredujemo kot parameter v funkciji tiskanja, tukaj uporabimo kazalec funkcije za izračun vrednosti iz funkcije množenja in nato to vrednost v funkciji tiskanja.