//main.cpp
int a = 0; 全局初始化区
char *p1; 全局未初始化区
main()
{
int a = 4; 栈,4 也是存在栈上
char s[] = "abc"; 栈 "abc"也是存在栈上
char *p2; 栈
char *p3 = "123456"; 123456\0 在常量区(是在 Data 段上),p3 在栈上。
static int c =0 ; 全局(静态)初始化为 0,就是放在 BSS 段
p1 = (char *)malloc(10);
p2 = (char *)malloc(20);
malloc 分配得来得 10 和 20 字节的区域就在堆区。因为属于动态申请分配内存空间
strcpy(p1, "123456"); 123456\0 放在常量区,编译器可能会将它与 p3 所指向的"123456"优化成一个地方。
} |