C言語のプログラミング
以下の関数を呼び出すmain関数を記述しろという問題です。試行錯誤しましたがコンパイルすら通りません。
main文で②の関数から返ってくる値を受け取る変数ってvoid (**x)();は違いますか?
②の行は何がなんだかわかりません。
どなたか取り敢えず②の行が何をしているか教えてください。。。><
void hoge(void) {
printf("hoge\n");
}
void (*a(void))(void){ //①
printf("a\n");
return hoge;
}
void (*(*b(void))(void))(void){ //②
printf("b\n");
return a;
}
void (*(*(*c(void))(void))(void))(void){ //③
printf ("c\n");
return b;
}