Arrays and pointers are not the same thing in C, although they are related and can be used similarly. So far we all agree.
However, I don't see why arrays were included in C, when pointers could have done their job perfectly.
I am not saying to remove the array notation (e.g, a[5] or int a[4] = {0,1,2,3};), which is quite useful and convenient. But you could have that same notation working on top of pointers (as is the case), as a cosmetic measure. So the array notation is not a reason to have arrays, just the notation!
The only difference I see is that arrays are constant pointers, and the size of memory they point to can't be changed. But this can be achieved with pointers as well, exactly by making them constant (the memory wouldn't be of fixed size, but I am not sure if this is an issue).
So why not have only pointers and let the programmer decide how the pointer should behave (i.e., constant, not constant, fixed size, variable size, etc)?
x = a + b * 2;
when you could achieve the same with a sequence of simple expressions likex = b; x*=2; x+=a;
?