全局变量与局部变量在内存中的区别
来源:互联网 发布:python.ax.text 编辑:程序博客网 时间:2024/05/29 16:04
全局变量保存在内存的全局存储区中,占用静态的存储单元;局部变量保存在栈中,只有在所在函数被调用时才动态地为变量分配存储单元。
该题目考查的知识点是变量的存储类型及性质。C语言经过编译之后将内存分为以下几个区域:
(1)栈(stack):由编译器进行管理,自动分配和释放,存放函数调用过程中的各种参数、局部变量、返回值以及函数返回地址。操作方式类似数据结构中的栈。
(2)堆(heap):用于程序动态申请分配和释放空间。C语言中的malloc和free,C++中的new和delete均是在堆中进行的。正常情况下,程序员申请的空间在使用结束后应该释放,若程序员没有释放空间,则程序结束时系统自动回收。注意:这里的“堆”并不是数据结构中的“堆”。
(3)全局(静态)存储区:分为DATA段和BSS段。DATA段(全局初始化区)存放初始化的全局变量和静态变量;BSS段(全局未初始化区)存放未初始化的全局变量和静态变量。程序运行结束时自动释放。其中BBS段在程序执行之前会被系统自动清0,所以未初始化的全局变量和静态变量在程序执行之前已经为0。
(4)文字常量区:常量字符串就是放在这里的。程序结束后由系统释放。
(5)程序代码区:存放函数体的二进制代码。
0 0
- 全局变量与局部变量在内存中的区别
- 全局变量与局部变量在内存中的区别详细解析
- 全局变量与局部变量在内存中的区别详细解析
- 全局变量与局部变量在内存中的区别
- 全局变量和局部变量在内存中的区别
- 全局变量和局部变量在内存中的区别
- 全局变量和局部变量在内存中的区别
- 全局变量和局部变量在内存中的区别
- 全局变量、局部变量在内存中的位置
- 局部变量,静态局部变量,全局变量,静态全局变量在内存中的存放区别
- 局部变量,静态局部变量,全局变量,静态全局变量在内存中的存放区别(转)
- 局部变量,静态局部变量,全局变量,静态全局变量在内存中的存放区别(转)
- 局部变量,静态局部变量,全局变量,静态全局变量在内存中的存放区别(转)
- 局部变量,静态局部变量,全局变量,静态全局变量在内存中的存放区别
- 局部变量,静态局部变量,全局变量,静态全局变量在内存中的存放区别(转)
- 局部变量,静态局部变量,全局变量,静态全局变量在内存中的存放区别
- 局部变量,静态局部变量,全局变量,静态全局变量在内存中的存放区别
- 局部变量,静态局部变量,全局变量,静态全局变量在内存中的存放区别(转)
- Apache HttpComponents学习笔记(三):配置HttpClient
- 一套开源的 iOS 轻量级框架
- MFC接受 keyDown、char消息
- Tacos 一种 Tapestry 的局部刷新组件
- Spring注解详解
- 全局变量与局部变量在内存中的区别
- VC++ sizeof和strlen之间的区别
- Hibernate对象三种状态
- iOS中self.property 和_property的区别,init和dealloc为何避免用self.property
- 关于ip包size与传输效率的的试验
- Tapestry5杂谈
- 下载文件
- Android自动生成验证码View,支持数字、字母、中文等不同验证码类型
- RTSP & RTMP 抓包