C is NOT a complex and hard to read language.
That's true for the most part but things can get very hard to read sometimes. E.g.
char (*(*x[3])()())[5]
What is x?
Even if you are a long-standing C programmer, I bet deciphering that takes you a while (relatively speaking) - the syntax is certainly not immediately obvious.
You wouldn't actually come across something like that in C code very often - at least, I haven't - but the syntax is legitimate.
Don't get me wrong, I think C is a great language. I found it completely liberating when I learned to program in it effectively. I realize the syntax may not be to everyone's taste, though.
BTW, that example was from 'The C Programming Language' by Kernighan & Ritchie - i.e. the C Bible and best programming book I've ever read! And, if you're interested, the answer is:
x is array[3] of pointer to function returning pointer to array[5] of char
Gulp! :/