詳細參見: csdn:http://blog.csdn.net/chenyiming_1990/article/details/9476181
開源中國:http://my.oschina.net/pollybl1255/blog/140323
#include <stdlib.h>
#include <stdio.h>
/*常量*/
const int ca = 10 ;//全局常量 data區
static sa;//靜态,data區
int a;//全局未初始化 bss 區
int b = 4;//全局初始化 data區
/*常量*/
const int ca = 10 ;//全局常量 data區
void func1(); //子函數,代碼區
void func2();//子函數,代碼區
int main(void)
{
/*申請一塊記憶體 堆*/
int *p = NULL;//棧
p = (int *)malloc(sizeof(int));
*p = 5;
char *p1 = "hello world";//data區
char p2[] = "hello world";//棧區
/*局部變量*/
int aa;
/*棧區*/
printf("***********棧區************\n");
printf("局部變量:%p\n",&aa);
aa = 5;
printf("局部變量:%p\n",aa);
printf("p2:%p\n",p2);
printf("\n\n");
/*堆區*/
printf("*********堆區**************:\n");
printf("動态記憶體區:%p\n",&p);
printf("動态記憶體區:%p\n",p);
/*非初始化資料段*/
printf("\n\n");
printf("*********bss 區************:\n");
printf("非初始化全局變量:%p\n",&a);
printf("\n\n");
/*隻讀區*/
printf("********only read 隻讀區********\n");
printf("data 段:\n");
printf("全局初始化變量:%p\n",&b);
printf("p1:%p\n",p1);
printf("常量:%p\n",&ca);
printf("靜态變量:%p\n",&sa);
printf("\n\n");
printf("代碼段:\nmain位址:%p\n",main);
printf("子函數2:%p\n",func2);
printf("子函數1:%p\n",func1);
}
void func1()
{
printf("子函數\n");
}
void func2()
{
printf("子函數\n");
}
結果:
***********棧區************
局部變量:0xbfca4bb8
局部變量:0x5
p2:0xbfca4bbc
*********堆區**************:
動态記憶體區:0xbfca4bc8
動态記憶體區:0x9c34008
*********bss 區************:
非初始化全局變量:0x8049a00
********only read 隻讀區********
data 段:
全局初始化變量:0x80499f0
p1:0x80486e8
常量:0x80486e4
靜态變量:0x80499fc
代碼段:
main位址:0x8048424
子函數2:0x804860a
子函數1:0x80485f6
附上圖檔,轉載自:http://my.oschina.net/pollybl1255/blog/140323
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZwpmL3ADOBJWWsRWYRNGRBF0dJR1MRJHVBJVVx02bpt0dvwlNC9CXCVzLcBDMN9CXyAzcml3dvwVbvNmLvR3YxUjLzM3Lc9CX6MHc0RHaiojIsJye.jpg)
轉載于:https://blog.51cto.com/wonderwander/1623779