程序四区中的全局区分析:全局区包括:1.常量2.全局变量3.文字常量区4.静态变量
以下用程序和图片说明:
#include <iostream>
char *get_str1()
{
char *p = "abcd";
return p;
}
char *get_str2()
{
char *q = "abcd";
return q;
}
void main(void)
{
char *p=NULL;
char *q=NULL;
p = get_str1();
q = get_str2();
printf("p=%s,&p=%d", p, &p);
printf("\n");
printf("p=%s,&p=%d", p, &p);
system("pause");
}
我们发现定义了2个不同的指针p,q;但是最后的地址一样的,因为“”abcd“”放在文字常量区中,当调用函数时,一样的“”abcd“”放在一个地址中,p,q都是指向他们,所以地址一样。详细见图。