问题描述
- 字符型数组 可以存储字符串吗
-
#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没有赋初始值,而你后面有将其输出,编译器不知道输出什么,故运行停止。不过你这程序问题太多。。。
时间: 2024-09-08 11:24:16