(*f)()関数型については,次の文法があります。
sizeof演算子とアドレス演算子を除く式では,T 型を返却する関数(function returning type T )は,T 型を返却する関数へのポインタに変換される。[C99, 6.3.2.1, 4]
この文法は,配列と同様に,特別に用意されたものです。(アドレス演算子を使用せずともアドレスを取得できるのは,配列と関数のみである。)例えば,
double f(char, int);
があったとき,関数指示子(式)f は関数 f のアドレスとなります。
 関数のアドレスを受け取ることのできるポインタが「関数へのポインタ」です。例えば,上の関数 f のアドレスを受け取るには,
double (*pf)();
といった具合に宣言したポインタ pf になります。これは doubleを返す関数へのポインタです。
/* Example 10.18 */
#include <stdio.h>
void f(void);
int main(void)
{
       void (*pf)(void) = f;
       pf();
       return 0;
}
void f(void)
{
       printf("Hello World!\n");
}
実行結果です。
Hello World!
pf が void型関数へのポインタです。それを f に初期化しています。関数呼出しは pf() ですが,これは f() と同値です。すなわち,pf == f です。