首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
编程语言
> 详细
C++基础知识——变量存储位置
时间:
2016-05-06 12:53:13
阅读:
193
评论:
0
收藏:
0
[点我收藏+]
标签:
1.栈区(stack):程序运行时由编译器自动分配
存放:函数的参数值,局部变量的值。
存储连续,其操作方式类似于数据结构中的栈。
栈区处于相对较高的地址以地址的增长方向为上的话,栈地址是向下增长的,所以空间有限,windows下大多1-2M。
2.堆区(heap):
在内存开辟另一块存储区域。一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。
存放:程序员申请的内存空间。
存储不连续,数据结构中的堆是两回事,类似于链表,受限于虚拟内存,32bit系统可达到4G。
堆区是向上增长的用于分配程序员申请的内存空间。
3.全局区(静态区)(static)—编译器编译时即分配内存。
全局变量和静态变量的存储是放在一块的,
初始化的全局变量和静态变量在一块区域,
未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。
程序结束后由系统释放。
附:静态局部变量只对自己定义的函数体可见。
静态全局变量具有文件作用域,两个不同的源文件可以名字相同的静态全局变量,表示两个变量。
而全局变量定义的源文件需要用extern 关键字再次声明这个全局变量。
4.只读区
常量区:常量字符串就是放在这里的。程序结束后由系统释放。
程序代码区:存放函数体的二进制代码。
5.栈中的存储内容
栈: 在函数调用时进栈顺序
a.主函数中函数调用后的下一条指令(函数调用语句的下一条可执行语句)的地址
b.数的各个参数,在大多数的C编译器中,参数是由右往左入栈的
c.然后是函数中的局部变量。(注意静态变量是不入栈的,在全局区)。
出栈顺序,逆序。
6.堆的内容:堆的头部用一个字节存放堆的大小
C++基础知识——变量存储位置
标签:
原文地址:http://blog.csdn.net/songzige/article/details/51329512
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
Spring Cloud 从入门到精通(一)Nacos 服务中心初探
2021-07-29
基础的排序算法
2021-07-29
SpringBoot|常用配置介绍
2021-07-29
关于 .NET 与 JAVA 在 JIT 编译上的一些差异
2021-07-29
C语言常用函数-toupper()将字符转换为大写英文字母函数
2021-07-29
《手把手教你》系列技巧篇(十)-java+ selenium自动化测试-元素定位大法之By class name(详细教程)
2021-07-28
4-1 YAML配置文件 注入 JavaBean中
2021-07-28
【python】 用来将对象持久化的 pickle 模块
2021-07-28
马拉车算法
2021-07-28
用Python进行冒泡排序
2021-07-28
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!