字符数组是一个数组,每个元素的值都可以改变。而字符串指针指向的是一个常量字符串,它被存放在程序的静态数据区,一旦定义就不能改变。这是最重要的区别
//会报错
#include <stdio.h>
int main()
{
char *p = "ab";
printf("%s\n", p);
*p++ = 'c';
p--;
printf("%s\n", p);
return 0;
}
//不会报错
#include <stdio.h>
int main()
{
char *p ;
char arr[3] = {'a', 'b'};
p = arr;
printf("%s\n", p);
*p++ = 'c';
p--;
printf("%s\n", p);
return 0;
}