C++基础知识——变量存储位置
来源:互联网 发布:淘宝评价非欧什么意思 编辑:程序博客网 时间:2024/06/05 19:27
1.栈区(stack):程序运行时由编译器自动分配
存放:函数的参数值,局部变量的值。
存储连续,其操作方式类似于数据结构中的栈。
栈区处于相对较高的地址以地址的增长方向为上的话,栈地址是向下增长的,所以空间有限,windows下大多1-2M。
2.堆区(heap):
在内存开辟另一块存储区域。一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。
存放:程序员申请的内存空间。
存储不连续,数据结构中的堆是两回事,类似于链表,受限于虚拟内存,32bit系统可达到4G。
堆区是向上增长的用于分配程序员申请的内存空间。
3.全局区(静态区)(static)—编译器编译时即分配内存。
全局变量和静态变量的存储是放在一块的,
初始化的全局变量和静态变量在一块区域,
未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。
程序结束后由系统释放。
附:静态局部变量只对自己定义的函数体可见。
静态全局变量具有文件作用域,两个不同的源文件可以名字相同的静态全局变量,表示两个变量。
而全局变量定义的源文件需要用extern 关键字再次声明这个全局变量。
4.只读区
常量区:常量字符串就是放在这里的。程序结束后由系统释放。
程序代码区:存放函数体的二进制代码。
5.栈中的存储内容
栈: 在函数调用时进栈顺序
a.主函数中函数调用后的下一条指令(函数调用语句的下一条可执行语句)的地址
b.数的各个参数,在大多数的C编译器中,参数是由右往左入栈的
c.然后是函数中的局部变量。(注意静态变量是不入栈的,在全局区)。
出栈顺序,逆序。
6.堆的内容:堆的头部用一个字节存放堆的大小
存放:函数的参数值,局部变量的值。
存储连续,其操作方式类似于数据结构中的栈。
栈区处于相对较高的地址以地址的增长方向为上的话,栈地址是向下增长的,所以空间有限,windows下大多1-2M。
2.堆区(heap):
在内存开辟另一块存储区域。一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。
存放:程序员申请的内存空间。
存储不连续,数据结构中的堆是两回事,类似于链表,受限于虚拟内存,32bit系统可达到4G。
堆区是向上增长的用于分配程序员申请的内存空间。
3.全局区(静态区)(static)—编译器编译时即分配内存。
全局变量和静态变量的存储是放在一块的,
初始化的全局变量和静态变量在一块区域,
未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。
程序结束后由系统释放。
附:静态局部变量只对自己定义的函数体可见。
静态全局变量具有文件作用域,两个不同的源文件可以名字相同的静态全局变量,表示两个变量。
而全局变量定义的源文件需要用extern 关键字再次声明这个全局变量。
4.只读区
常量区:常量字符串就是放在这里的。程序结束后由系统释放。
程序代码区:存放函数体的二进制代码。
5.栈中的存储内容
栈: 在函数调用时进栈顺序
a.主函数中函数调用后的下一条指令(函数调用语句的下一条可执行语句)的地址
b.数的各个参数,在大多数的C编译器中,参数是由右往左入栈的
c.然后是函数中的局部变量。(注意静态变量是不入栈的,在全局区)。
出栈顺序,逆序。
6.堆的内容:堆的头部用一个字节存放堆的大小
0 0
- C++基础知识——变量存储位置
- C/C++中 变量的存储位置
- c语言中变量的存储位置
- C/C++中 变量的存储位置
- C/C++中变量的存储位置
- c中变量存储位置分析
- C/C++中变量的存储位置
- C/C++中 变量的存储位置
- C/C++中 变量的存储位置
- c中各个变量存储的位置
- c/c++变量的存储位置
- 【C语言】[变量]:变量在内存的存储位置
- 常量字符串,字符串变量——存储位置
- final变量存储位置
- 变量存储位置
- C语言变量的类型和存储位置
- C/C++中 变量的存储位置,BSS段
- C/C++中static关键字及变量存储位置总结
- 一个ListView使用多个布局文件
- 设计模式C++学习笔记之八(Adapter适配器模式)
- Django升级1.9.6出现的中文本地化bug
- hdu4498 Function Curve
- inside the c++ object
- C++基础知识——变量存储位置
- 织梦DedeCMS自增函数[field:global name=autoindex/]
- 动态规划经典问题--TSP问题
- Postgresql 远程同步(非实时同步,小数据量)
- [一起学Hive]之四-Hive的安装配置
- c++第六次上机作业
- asp.net C#母版页和内容页事件排版加载顺序生命周期
- 彻底删除Delphi中ActiveX面板中的第三方控件
- 反省与自勉