维1 2017-03-28 07:36 采纳率: 66.7%
浏览 936
已采纳

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

#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;
}

  • 写回答

2条回答 默认 最新

  • abc3065369 2017-03-28 09:05
    关注

    #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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?