Описание переменной указателя на функцию:
тuп * ( имя ) ( );
Пример:
float (* f1) ( );
f1 является указателем на функцию возвращающую значение с плавающей точкой.
Если функция fun c имеет определение
float fun c ( )
{ }
то fun c можно рассматривать, как указатель константы представляющий стартовый адрес этой функции, то справедлив следующий оператор присваивания
f1 = fun c;
Далее вместо указания имени функции fun c посредством указателя переменной f1 надо записать (* f1) ();
Ecли функция f2, например, имеет определение
char a;
int b;
float f2 ( a,b )
{ }
то обратиться к этой функции с помощью указателя-переменной f1 можно так:
1) Присвоить указателю имя функции f2
Например: f1 = f2
2) Обратиться через указатель переменной, записав в скобках список аргументов.
Например: (* f1) (g, f);
В общем, виде обращение к функции с помощью указателя-переменной можно представить так:
( * указатель на функцию) (список аргументов)
Такой способ обращения к функции позволяет передавать функции в качестве аргументов другие функции, а также хранить функции в массивах и структурах.