int (*(*q)(int (*)()))();
わかりました、私は次から始めます: q は関数へのポインターであり、これは...次に何が続くかわかりませんが、おそらく...関数へのポインターであり、何も取らずに int を返し、関数へのポインターを返します、何も取らずに int を返します。
int (*(*q)(int (*)()))();
わかりました、私は次から始めます: q は関数へのポインターであり、これは...次に何が続くかわかりませんが、おそらく...関数へのポインターであり、何も取らずに int を返し、関数へのポインターを返します、何も取らずに int を返します。
秘訣は、q
それ自体が関数ポインターを返し、受け取る関数ポインターであることです。cdecl
言います:
q を関数へのポインタ (int を返す関数へのポインタ) として宣言する int を返す関数へのポインタを返す
あなたが正しいです。
q は、関数へのポインターを渡す (int を返すものを何も渡さない) 関数へのポインターを返す (int を返すものを何も渡さない) 関数へのポインター ポイントです。
こちらをご覧ください。 http://c-faq.com/decl/spiral.anderson.html