奇怪,关于 char *p = "***" 内详
代码如下:
char* fun()
{
char *p = "*** ";
return p;
}
或者
char* fun()
{
return "*** ";
}
这样的函数有没有问题?字符串常量是全局有效的吗?测试结果正常。我觉得有点奇怪。
请帮忙解释一下。
[解决办法]
是的, 常量全局有效
[解决办法]
你代码里的 "*** "这个字符串常量保存在程序静态存储区,函数返回,字符串常量仍生存~
但是这样的话,你也不可能通过返回的指针来直接修改字符串的内容了