内存四区问题-函数中的字符串

#include
#include
char * mystring1()
{
char p1 = "abcd";//这个字符串在栈区还是常量区
return p1;
}
char * mystring2()
{
char *p2 = "abcd";//这个字符串在栈区还是常量区
return p2; //如果在栈区到底能不能在主函数中调用,是被释放了还是
**
}
int main()
{
char a[]="abc";//这个字符串我知道在常量区
char *p1 = mystring1();
char *p2 = mystring2();
printf("%d\n",p1);
printf("%d\n",p2);
printf("%s\n",*p2);
printf("%s\n",*p2);
getchar();
return 0;
}

#include

char *s()
{
char *p="abc";
printf("p=%p\n",p);
return p;
}

char *s1()
{
char p[]="abc";
printf("p=%p\n",p);
return p;

}
int main()
{
char *a,*a2;

a=s();
a2=s1();

printf("a=%p\n",a);
printf("a2=%p\n",a2);

return 0;

}

http://blog.csdn.net/youoran/article/details/10990815

http://www.cnblogs.com/endsock/articles/1914621.html