Warunki wstępne:
Wskaźniki są symboliczną reprezentacją adresów. Umożliwiają programom symulację call-by-reference, a także tworzenie i manipulowanie dynamicznymi strukturami danych. Iteracja po elementach tablic lub innych struktur danych jest jednym z głównych zastosowań wskaźników.
Adres zmiennej, z którą pracujesz, jest przypisywany do zmiennej wskaźnikowej, która wskazuje na ten sam typ danych (taki jak int lub ciąg).
Składnia :
datatype *var_name;>
Adres funkcji: Wszyscy wiemy, że kod każdej funkcji znajduje się w pamięci, więc każda funkcja ma adres, jak wszystkie inne zmienne w programie. Nazwy funkcji można użyć do znalezienia adresu funkcji. Adres funkcji możemy uzyskać po prostu wpisując w niej nazwę funkcji bez nawiasów.
długość łańcucha basha
Więcej informacji na ten temat znajdziesz w artykule – adres funkcji.
Wskaźnik funkcji w C++
- Wskaźnik funkcji służy do wskazywania funkcji, podobnie wskaźniki służą do wskazywania zmiennych.
- Służy do zapisywania adresu funkcji.
- Wskaźnik funkcji służy do wywołania funkcji lub może zostać wysłany jako argument do innej funkcji.

Wskaźnik funkcji w C++
Składnia :
return_type (*FuncPtr) (parameter type, ....);>
Odwoływanie się i dereferencja wskaźnika funkcji w C++
Podobnie jak w przypadku wskaźnika używanego ze zmiennymi, referencje i dereferencje wykonujemy za pomocą wskaźnika funkcji.
Odniesienie: Kiedy wskaźnikowi przydzielany jest adres funkcji, która ma być z nim powiązana, proces ten nazywa się referowaniem.
Dereferencje: Kiedy używamy operatora (*), aby uzyskać wartość przechowywaną we wskaźniku.
Składnia:
// Declaring return_type (*FuncPtr) (parameter type, ....); // Referencing FuncPtr= function_name; // Dereferencing data_type x=*FuncPtr;>
Wskaźnik funkcji używany do wywołania funkcji
Widzimy w tym, jak wskazujemy wskaźnik na funkcję i wywołujemy ją za pomocą tego wskaźnika. Jest to skuteczny sposób użycia
Przykład:
C++
jak zamienić string na int
// 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;> }> |
>
>Wyjście
The value of the product is: 30>
W powyższym programie deklarujemy funkcję mnożenia, w której mnożymy dwa elementy a i b, a następnie zwracamy wynik. Zamiast jednak bezpośrednio wywoływać funkcję, używamy wskaźnika funkcji, który wykonuje za nas tę samą pracę.
Przekazywanie wskaźnika funkcji jako parametru
Podczas deklarowania wskaźnika funkcji do przechowywania adresu pamięci funkcji, ale gdy chcemy przekazać wartość zwracaną do następnej funkcji. Mamy dwie metody wykonania tego zadania. Najpierw albo przekaż otrzymaną wartość, albo po drugie przekaż wskaźnik funkcji, który już istnieje.
wyłącz tryb programisty
Przykład:
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;> }> |
>
>Wyjście
The value of the product is: 30>
Złożoność czasowa: O(1).
Przestrzeń pomocnicza: O(1).
W powyższym programie deklarujemy funkcję mnożenia, w której mnożymy 2 zmienne aib. Przekazujemy wskaźnik funkcji jako parametr w funkcji drukowania, tutaj używamy wskaźnika funkcji do obliczenia wartości z funkcji mnożenia, a następnie tej wartości w funkcji drukowania.