c中变量存储位置分析
2016-04-21 21:36
369 查看
c与样中变量通常分为:
自动局部变量
静态局部变量
全局变量
静态全局变量
在分析各变量存储位置之前,说一下c程序的布局吧! 先上个图
![](https://img-blog.csdn.net/20160421221304249?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
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区中,能够自动释放
自动局部变量
静态局部变量
全局变量
静态全局变量
在分析各变量存储位置之前,说一下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区中,能够自动释放
相关文章推荐
- Java基础知识
- 区域生长(用鼠标选择一个点进行生长)
- 新版mac系统CocoaPods安装
- 期中HTML代码及技术博客
- Android NDK开发C语言部分的单步跟踪
- 用canvas作出绚丽的小游戏
- Fragment使用方法总结
- 用c实现HASH表创建、插入、查找、删除、打印(欢迎高手指点)【转】
- 简单App项目的运行
- Jquery的treeview插件实现树形结构
- 2015 ICPC 沈阳站M题
- Notification版本更替
- 兴趣问题清单
- 课程练习二-1003-pie
- BestCoder Round #80 A B C hdu5667矩阵快速幂
- UIBarButtonSystemItem 样式 和 图片
- nyoj 448 寻找最大数
- 二分查找进阶——循环有序数组查找再进阶——循环有序重复数组查找
- javascript 前端验证 file 上传图片 尺寸 大小
- 第82课:Spark Streaming第一课:案例动手实战并在电光石火间理解其工作原理