字符型数组 可以存储字符串吗

#include
int g;// 存储在全局静态区
int main()
{
char *p1 = "hahajhkj"; // 和g一样
char p2[] = "haha"; // 堆栈中
*p1='a';
printf("%x %x %x", &g, p1,p2);
return 0;
}
为什么老是停止运行啊

p1常量指针,不能修改

char *p1 = "hahajhkj";这样写,是让p1指向了一个常量池的地址,不能修改,想要修改,必须用malloc或者new开辟空间后才能修改内容

可以用strcpy来拷贝:
char *p1 = (char *)malloc(100);
strcpy(p2, p1);

运行停止是因为你的变量g没有赋初始值,而你后面有将其输出,编译器不知道输出什么,故运行停止。不过你这程序问题太多。。。