char *p = "abc"; 是在堆上开辟了存储空间,放了 "abc","abc"是const的,是不能改变它的值的.abc这些值是放在只读段的,不能修改 这实际上是一个char const *,是不能被修改的char a[4] = "abc"; 是存储在栈上面的,不是常量,是可以改变的.