what does the line int *(*(x[3])())[5]; do in C?
<p>This is my first time asking a question on Stack Overflow, so please fell free to tell me if I did anything wrong or not specific enough.
I've been programming microcontrollers in C for about 4 now. Some days ago I took part in an Electronics Competition. One of the many questions was what exactly the C codeline</p>

<pre><code>int *(*(x[3])())[5];
</code></pre>

<p>does. This is the line as I remember it. It is possible that a bracket was at an other location, but I think this was the line.</p>

<p>My guess is that x is an array of functionpointers of which we take the fourth element and dereference it. This function is then executed without handing over parameters. The returnvalue seems to be a pointer to a pointer an array of which we dereference once in order to get the address of the first element. We then choose the 6th element of that array. I have no idea what the int is for though...</p>

<p>Thank you very much for answering my question and have a nice day.</p>