1、访问方式不同
⑴数组的下标引用(读一次内存)
char ary[5] = "hello",c;
......
c = ary[2];
⑵对指针的引用(读两次内存)
char *P,c;
......
c = *p;
⑶对指针进行下标引用(读两次内存)
char *p = "hello";
......
c = p[2];
2、在ANSI C中,初始化指针时所创建的字符常量(注意只能在char型时赋初值,如char *p = "hello";但是float *pip = 3.14;将无法通过编译)被定义为只读。如果试图通过指针修改这个字符串的值,程序就会出现未定义的行为。与指针相反,由字符串常量初始化的数组是可以修改的。