what does this mean char (*(*a[4])())[5]?

后端 未结 4 549
鱼传尺愫
鱼传尺愫 2020-12-09 13:08

Hi I came across the question in \"Test your skills in c++\".

Please let me know what does it mean with an example?

Edited Section

4条回答
  •  庸人自扰
    2020-12-09 13:46

    Following the spiral rule (as linked to by chris), and starting with the identifier:

    a
    

    ...is...

    a[4]
    

    ...an array of 4...

    *a[4]
    

    ...pointers to...

    (*a[4])()
    

    ...a function taking no parameters...

    *(*a[4])()
    

    ...returning pointer to...

    (*(*a[4])())[5]
    

    ...an array of five...

    char (*(*a[4])())[5]
    

    ...chars.

    Sidenote: Go give the architect who came up with this a good dressing-down, then find the programmer who wrote this code without a comment explaining it and give him a good dressing-down. In case this was given to you as a homework, tell your teacher that he should have instructed you on how to use cdecl instead, or how to design code in a way that it doesn't look like madman scrawlings, instead of wasting your time with this.

提交回复
热议问题