1
int (*z())[5];

これは何ですか?グローバル宣言としてメインの前に置くと、コンパイルされます。z() はポインタ( "z()" )になると思ったので、試してみました:

int itab[5]={0,1,2,3,4};
((z())[0])[0]=itab;

これはエラーになります:

エラー: 'int*' から 'int' への変換が無効です</p>

だから私はああと思ったので、私は近くにいて試してみました:((z())[0])[0]=*itab; これはコンパイルされますが、リンカーに未解決のシンボルエラーが発生します:

g++ -o dist/Debug/GNU-Linux-x86/cppappl_example4 build/Debug/GNU-Linux-x86/main.o build/Debug/GNU-Linux-x86/main.o: 関数main': /NetBeansProjects/cppappl_example4/main.cpp:242: undefined reference toz() 内

だから私の質問は: この宣言は正しいですか? はいの場合、それは何ですか、どのように使用しますか?


編集:回答で指定されたリンクは、実際に非常に役立ちます:

デビッド・アンダーソンによる素敵な螺旋のルール

および cdecl.org

ありがとう!

4

2 に答える 2