全局变量,静态全局变量,局部变量,静态局部变量的区别
来源:互联网 发布:战舰世界世界大和知乎 编辑:程序博客网 时间:2024/06/05 08:25
一.全局变量:
作用域:全局变量具有全局作用域。全局变量只需在一个源文件中定义,就可以作用于所有的源文件。当然,其他不包含全局变量定义的源文件需要用extern 关键字再次声明这个全局变量。
存储区:全局变量本身是静态存储方式,存储在静态数据区。
生存期:全局变量在程序运行期间一直存在直到程序结束时才释放。
二.静态全局变量
静态全局变量即在全局变量前加static修饰,这样就改变了变量的作用域,使之只对源程序中定义该变量的文件可见,起到了隐藏的作用。
三.局部变量
作用域:局部变量只有局部作用域,它只作用于当前定义该变量的函数里。
存储区:局部变量存储在内存的栈中。
生存期:局部变量是自动对象(auto),它在程序运行期间不是一直存在,而是只在函数执行期间存在,函数的一次调用执行结束后,变量被撤销,其所占用的内存也被收回。
四.静态局部变量
静态局部变量在当前局部变量加了static修饰后,改变了变量的存储区,使之变成了静态存储方式存储在静态数据区。静态局部变量只在定义它的函数内有效,只是程序只分配依次内存,函数返回后变量不会消失,这样下一次调用函数时还能利用以前的值。
总结:
static的作用:
static作用于全局变量时:改变作用范围,不改变存储位置。
static作用于局部变量时:改变存储位置,不改变作用范围。
参考http://www.cnblogs.com/burandanxin/archive/2009/10/16/1584735.html
0 0
- 全局变量、局部变量、静态全局变量、静态局部变量的区别
- 全局变量 局部变量 静态全局变量 静态局部变量的区别
- 全局变量、局部变量、静态全局变量、静态局部变量的区别
- 全局变量、局部变量、静态全局变量、静态局部变量的区别
- 全局变量、局部变量、静态全局变量、静态局部变量的区别
- 全局变量、局部变量、静态全局变量、静态局部变量的区别
- 全局变量、局部变量、静态全局变量、静态局部变量的区别
- 全局变量、局部变量、静态全局变量、静态局部变量的区别
- 全局变量、局部变量、静态全局变量、静态局部变量的区别
- 全局变量、局部变量、静态全局变量、静态局部变量的区别
- 全局变量,局部变量,静态全局变量,静态局部变量的区别
- 全局变量、局部变量、静态全局变量、静态局部变量的区别
- 全局变量、局部变量、静态全局变量、静态局部变量的区别
- 全局变量、局部变量、静态全局变量、静态局部变量的区别
- 全局变量、局部变量、静态全局变量、静态局部变量的区别
- 全局变量、局部变量、静态全局变量、静态局部变量的区别 .
- 全局变量、局部变量、静态全局变量、静态局部变量的区别
- 全局变量、局部变量、静态全局变量、静态局部变量的区别
- latex 复杂表格(多行多列)的制作
- MFC使用Unicode字符集在网络编程接收数据乱码或不完整的解决办法
- vector删除操作 erase方法注意事项
- UnityEngine.Application.LoadLevel(int)已过时
- Codeforces 601A The Two Routes
- 全局变量,静态全局变量,局部变量,静态局部变量的区别
- 【spring 4】AOP:动态代理
- 个人总结之I2C总线协议
- 基于深度学习的视频识别方法概览
- PHP 加密
- 开发部署一个智能合约(以太坊-Ethereum)
- API 根据句柄 获得进程可执行文件路径的几种方法
- CDC * pdc 指针 与 hdc 转换
- 关于MFC中WM_MOUSEHOVER和WM_MOUSELEAVE消息的使用