您的位置:首页 > 其它

c中变量存储位置分析

2016-04-21 21:36 369 查看
c与样中变量通常分为:

自动局部变量
静态局部变量
全局变量
静态全局变量
在分析各变量存储位置之前,说一下c程序的布局吧! 先上个图



Text Segment:存放正文,为机器执行指令
Initialized Data Segment( Ds):初始话数据存放
[b]Uninitialized Data Segmen( .bss):[/b]未初始化数据存放
[b][b]Stack:[/b][/b]自动变量存放及函数调用信息存放
[b][b][b]Heap:[/b][/b][/b]动态存储,存放程序运行时所动态分配的数据
说回变量存放位置分析

未初始化的静态变量(全局或局部)和全局变量存放在.bbs数据段
初始化的静态变量(全局或局部)和全局变量存放在Ds数据段

注意:  Initialized Data Segment(  Ds)又可更细化的分为只读区和可读写区,

         例如:全局变量 char *p="shi" 和 char p[]="shi";

                     char *p="shi"中, 指针变量将存放在Ds数据段的读写区,“shi”字符串将存放在Ds数据段的只读区

                     char p[]="shi"中, p数组将占用4个字节,存放在Ds数据段的可读写区
自动局部变量将存放在stack区中,能够自动释放
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: