linux的进程的虚拟内存从低地址到高地址区域划分为:
代码区->只读常量区->全局区->bss段->堆区->自由分配区->栈区
#include <stdio.h>
int global; //bss段,没初始化的全局变量
int global1=1; //全局区/数据区
const int global2=2; //只读常量区,存放字符串常量或const的全局变量
int main()
{
int a; //栈区
char b[]="hello"; //栈区
char *pb=b; //栈区
char *pc="world"; //只读常量区
char d[20]; //栈区
const int e=11;//栈区
static int f=12; //全局区
int *pf=&f;
printf(" For global:\n");
printf("&global= %p\n",&global);
printf("&global1= %p\n",&global1);
printf("&global2= %p\n",&global2);
printf("global1= %d\n",global1);
printf("-------------------\n");
printf(" For a:\n");
printf("&a= %p\n",&a);
printf("----------------