0、没有错啊(vs2010可编译通过);
1、char p[]的话是声明一个字符数组,幷用“hello”初始化。h e l l o \0这六个字符是放在p这个位置的,而且p的值已经在编译时有系统确定,你不能这样修改:
char src[] = "adsf";
p = src; //错误
*p是可以修改的。
2、char *p= “hello” 是将指针p指向字符串常量“hello”所在的地址。注意:常量“hello”的地址会根据系统不同放入不同的地址,但是它是不可更改的,(常量),也就是*p不能修改。
3、不过在c语言中,数组名本身就代表数据首元素的地址。