0

私は本「ThinkinginC++」ブルースエッケルを読んでいます。164ページ(ポーランド語版)の第3章は、関数へのポインタについてです。

本からの例:

void * (*(*fp1)(int))[10]
float (*(*fp2)(int,int,float))(int)
double (*(*(*fp3)())[10])()
int (*(*f4())[10])()

私は本の解決策を理解していないので、これをどのように解釈すべきか、そしてこれらの例によって何が作成されるかを教えてください。

4

2 に答える 2

3

このトリッキーなルールが、このような難問を解きほぐすのに役立つことを願っています: http://c-faq.com/decl/spiral.anderson.html

于 2012-10-17T15:14:53.290 に答える
1

4を取りましょう:int (*(*f4())[10])()

f4評価された ( f4()) を読み取り、逆参照 ( (*f4())) をサブスクライブ ( (*f4())[10]) してから逆参照 ( (*(*f4())[10])) し、評価してint( int (*(*f4())[10])()) を与えることができます。

したがって、これは を返す関数のポインタへの配列のポインタを返す関数intです。

于 2012-10-17T15:17:07.763 に答える