B is a direct ancestor of C. It was an untyped language in which the syntax
tab[10];
had more or less the meaning of
Word tab_[10];
Word tab = (Word)&tab_;
in C. I.E. it reserved 10 words of memory and initialized the variable with the address of the memory zone.
When C evolved, it was deemed useful to keep the fact that an array (BTW not only an array variable, any array value, you can see it with pointers and multi-dimensional arrays) decay in a pointer to its first element.
B Manual in Dennis Ritchie home page which has other historical information about C and Unix.