静态全局变量和全局变量的区别

定义:

静态全局变量:一般全局变量前缀static关键字。

存储方式:

全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。所谓静态存储方式是指在程序运行开始时由系统分配固定的储存空间的方式。

区别

非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。

静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起错误。

从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围。 

静态全局变量和全局变量相关推荐

  1. iOS定义静态变量、静态常量、全局变量

    原文链接: iOS定义静态变量.静态常量.全局变量 简书主页:http://www.jianshu.com/users/37f2920f6848 Github主页:https://github.com ...

  2. 静态局部变量和全局变量的区别!

    静态局部变量和全局变量的区别! C++变量根据定义位置的不同,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名作用域和文件作用域. 1.从作用域看: (1)全局变 ...

  3. linux进程的堆栈空间_代码段(指令,只读)、数据段(静态变量,全局变量)、堆栈段(局部变量)、栈【转】...

    转自:http://blog.csdn.net/gongweijiao/article/details/8207333 原文参见:http://blog.163.com/xychenbaihu@yea ...

  4. 局部变量,静态局部变量,全局变量,静态全局变量在内存中的存放区别(转)...

    我们先来看内存中的几大区:  内存到底分几个区? 下面有几种网上的理解,我整理一下: 一: 1.栈区(stack)- 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构 ...

  5. java数据段 静态区_linux进程的堆栈空间_代码段(指令,只读)、数据段(静态变量,全局变量)、堆栈段(局部变量)、栈【转】...

    一)概述 .堆栈是一个用户空间的内存区域,进程使用堆栈作为临时存储. .堆栈中存放的是函数中的局部变量,在函数的生命周期中可以将变量压入堆栈,编译器需要确保堆栈指针在函数退出前恢复到初始位置,也就是说 ...

  6. python局部静态变量_全局变量、局部变量和静态变量

    全局变量和局部变量在写代码时需要区分清楚,不然会出大问题.不同语言定义不同范围的变量的写法有很大的区别. 那么静态变量是在什么场景下用到呢?我们来假设这样一个场景:在函数内部定义的变量,当程序执行到它 ...

  7. (转)静态变量和全局变量的区别

    转自:http://blog.sina.com.cn/s/blog_63278e550100lcb9.html 全局变量与静态变量 static 声明的变量在C语言中有两方面的特征: 1.变量被放在程 ...

  8. c语言中全局变量多线程调用-局部变量、静态局部变量、全局变量与静态全局变量分析

    基本概念: 作用域:起作用的区域,也就是可以工作的范围. 代码块:所谓代码块,就是用{}括起来的一段代码. 数据段:数据段存的是数,像全局变量就是存在数据段的 代码段:存的是程序代码,一般是只读的. ...

  9. php局部变量和全局变量的区别,PHP局部变量、静态变量、全局变量和超全局变量的使用和区别...

    首先,PHP 中从变量的范围上可以分为 4 类,分别是静态变量.局部变量.全局变量和超全局变量. PHP 局部变量与全局变量 在 PHP 中中全局变量和局部变量的定义是和 C 语言类似的.在函数外定义 ...

  10. 静态全局变量、全局变量、普通局部变量、静态局部变量四者之间的区别

    按存储区域分:全局变量.静态全局变量和静态局部变量都存放在内存的全局数据区,局部变量存放在内存的栈区 按作用域分: 1.全局变量在整个工程文件内都有效: 2.静态全局变量只在定义它的文件内有效: 3. ...

最新文章

  1. 邓文迪撑杆跳,甩开老公要独立?_富杂志_新浪博客
  2. 电镀面积计算机公式,电镀面积计算法.pdf
  3. ASP程序中调用函数Now()显示上午下午的问题
  4. Elasticsearch之分词器的工作流程
  5. leetcode1433. 检查一个字符串是否可以打破另一个字符串(贪心算法)
  6. Linux文件系统十问
  7. 常见的排序算法二——希尔排序
  8. leetcode390(2022 1.2)
  9. [01]树梅派Raspberry-Pi入门上手
  10. 原生js实现简单的svg编辑器
  11. 在无参考数据集(比如LIME、MEF、DICM)上使用NIQE指标
  12. [转]企业安全建设二——如何推动安全策略
  13. 雷达多普勒频率计算公式_新型双频相干脉冲压缩测速测距激光雷达
  14. chrome 打开默认页 被篡改_chrome启动页被篡改怎么办_chrome浏览器启动页全被劫持处理方法-win7之家...
  15. linkboy+ESP32创意DIY时钟
  16. 腾讯在汉投资10亿 建设华中地区最大研发中心
  17. 脑与认知神经科学Matlab Psytoolbox认知科学实验设计——视错觉
  18. Visual Studio 2017 安装及使用(新手)
  19. 秒杀(小米网抢购系统开发实践--“米粉节”背后的故事)
  20. 记应聘:华为 可信理论、技术与工程实验室 产品数据工程师

热门文章

  1. 工作总结word注意点
  2. 电脑重启后 iis启动不开解决办法
  3. bzoj 1242: Zju1015 Fishing Net 弦图判定
  4. **c语言八进制转换为十进制or十进制转换为8进制**
  5. 小型呼叫中心系统搭建
  6. 【小程序websocket前后端交互】uniapp写微信小程序聊天功能功能,websocket交互功能,心跳重连【详细注释,复制即用】
  7. 赫尔布朗特定理开启自动定理证明的大门
  8. onl_cgform_head拿到迁移的表
  9. VS Code新建VUE项目
  10. [极客大挑战 2019]Havefun1