char *p="abc" 作为一个常量,存放在空间的数据区,其内容不可改变 ( win tc tc3.0 中可以改变,但在 vc++6.0 中不可以。在 ANSI C 中,是不可以改变的)

 

char s[]="abc" 存放在栈内,其内容可以改变

char *p="abc"  ;// 如果程序中企图通过指针 p 来修改字符串 “abc” 的内容,那该程序不可移植。

char s[]="abc" // 可移植的写法。

  指针 p 指向常量字符串 “wen” (位于静态存储区,内容为 wen\0 ),常量字符串的内容是不可以被修改的。从语法上看,编译器并不觉得语句 p[0]= ‘X’ 有什么不妥,但是该语句企图修改常量字符串的内容而导致运行错误