char *str = "abc";是在常量区开辟一个内存,放字符串"abc",然后str指针指向这个常量区,而常量区有个特点:就是不能修改,如果你*str[2]='d'会报错char str[] = "abc";是放在栈区,是可能修改的
char *str = "abc"; 与 char str[] 是一样的,都是指向首地址。str只是个指针变量。