2017-03-18 26 views
1

声明:理解Cの関数ポインタ

「機能にNポインタの配列、関数へのポインタを返すと、整数へのポインタを返す」

誰もが関数プロトタイプを理解することで私を助けることができます上記の声明のために?

考えるanswer- int *(*(*a[N])())();

我々は上記の回答に到着する方法を誰も私を説明することができますしてください?

+4

を理解するためにこのサイトを使用します。

は、ポインタの500は 返す関数ポインタへのポインタを返す関数に配列として


注意をintに宣言する私はそれを知らずに25年間コード化しましたか? –

+0

あなたはこれを必要としません。たとえあなたがそうすると思っても、誰もあなたのコードを理解できません。 :-) C++では、仮想関数と継承を使用して(したがって、すべてのポインタを隠すことで)これが解決される可能性があります。 –

+0

@BoPersson実際のソフトウェアの仕組みを私の教授が理解するならば/ –

答えて

1
*a[N] 

yは

int *(y)() 

それを呼び出すと整数

1
int *(*(*a[500])())(); 

を返す関数ポインタであり、それは関数ポインタを返す

*(x)() 

をxは呼び出し、Nポインタのアレイであります翻訳先:、次回は複雑なポインタ文http://cdecl.org/