I tried some code to check the behavior of array and pointers. Its as follows.
#include main(){ int s[]={1,2}; int *b=s; printf(\"%d, %d, %d\\n\"
A simple way to think about this is that an array as a pointer can't be changed by assignment, it is effectively a constant pointer to a known amount of memory.
To try that, use:
myptr = myarray;
Which is perfectly ok, and then try:
myarray = myptr;
Which is not.