#include <stdio.h>
int main()
{
char s[20]="Golden Global View"; //Golden Glo
//char *s=Golden Global View"; //error!
//变量s是放在栈中的,而它指向的字符串"Golden Global View"是放在只读数据区的,不能通过指针修改
char *p=s;
p = p+10;
*p ='\0';
printf("%s\n",s);
return 0;
}
char *s = "abc";先是在文字常量区分配了一块内存放"abc",然后在栈上分配一地址给c1并指向
这块地址,然后改变常量"abc"自然会崩溃
然而char c2[] = "abc",实际上abc分配内存的地方和上者并不一样.