char * a="abc"; char * b="abc"; a和b是两个不同的指针,分别在栈中分配内存。而两个相同的字符串常量却在静态存储区内占用同一块内存。 char a[]="abc"; 这里就不是字符串常量了,而是字符数组。 不能通过指针改变字符串常量的值。可以通过字符数组改变字符串的值。