首先,内存四区中全局区可以大致分为以下:
未初始化区 |
---|
初始化 区 |
文字常量区 |
#include<stdio.h>
char *get_str1()
{
char *p;
p="abc";
return p;
}
char *get_str2()
{
char *q="abc";
return q;
}
int main()
{
char *p=NULL;
char *q=NULL;
p=get_str1();
printf("p:%s\n地址:%d\n",p,p);
q=get_str2();
printf("q:%s\n地址:%d",q,q);
}
画图分析:
仅针对于p指针的各处分析,可以看出get_str1()函数中的p与main函数中的p并没有多大关系。关键还是掌握内存四区图吧。