char *p="abc"; //p在栈区,abc在静态区,abc不可被更改,被写入会报错,p与abc是相互独立的,其关系可以被打破。
char a[]="123"; //数组名a实际就是123这段存储区域的别名,不可变,所以a不能做左值。
char (*p)[3] = &a; //正确赋值
char (*p)[3] = a; //错误,无法赋值,一个是char*,另一个是char (*)[3],类型不同。
char (*p)[5] =&a; //错误,元素个数不同,无法赋值。
*(p+2) == p[2] == a[2] == *(a+2)。