AIUI, the explanation is that they wanted this idea of "declaration follows use". For simple things, this works kind of nicely:
char *foo;
Says that *foo will have type `char`. This sounds good in theory, but famously breaks down when things get more complicated (arrays of function pointers, multiple declarations at once, &c.).