I think you overstate the case. It is not literally true that an array
is the same as a constant pointer,
A synonym for "not literally true" is "not true".
but the statement does capture the
most distinctive aspect of C's array mechanism as compared with that of
other programming languages.
I strongly disagree. The distinctive aspect of C's array mechanism is
that *operations* on arrays are defined in terms of operations on
pointers.
Arrays are not pointers. Pointers are not arrays. Students who fail
to understand this are likely to make mistakes like:
void foo(int array[])
{
... sizeof array ...
/* expected to be the size of an array object, but it's really
the size of a pointer object */
}