>>56
* をいくつ付けても通るのは有名なネタだな。

#include <stdio.h>
int main(void) {
(**********printf)("hello, world\n");
}


関数指示子 (結果が関数型であるような式) は sizeof や & の
オペランドであるときを除いて関数ポインタに (暗黙に) 型変換されるという規則があって、
普通に printf("hello, world\n"); とか書いてあるときでもこの printf は関数ポインタに変換されてる。
関数呼出しは関数に対してではなく関数ポインタに対して行われる。

関数ポインタに * を付けると関数指示子になるけどそれもやっぱり関数ポインタに変換されるので
* をいくつつけても結果は関数ポインタという変なことになる。