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

静态变量与全局变量的区别静态局部变量和普通全局变量以及静态全集变量在编译时 编译器会自动给他们分配地址 而且是从 MCU 上电运行开始 一直驻留 不会被回收的 而真正的区别在于他们的作用域 静态局部变量的作用域是在于定义它的那个函数内 由于其在编译时编译器就给他们分配了地址 并且做了初始化 所以它只能被初始化一次 而且看起来的顺序是程序每执行到这个函数时 都会执行那条定义语句 其实并 没 有 因为它已经被分配地址了

静态局部变量和普通全局变量以及静态全集变量在编译时,编译器会自动给他们分配地址。而且是从MCU上电运行开始,一直驻留,不会被回收的。

普通全局变量,在本文件内可以被无限制地使用。而且其他的源文件中,也可以通过extern关键字引用后使用。

而静态全局变量则是在普通全局变量的基础上,取消了extern关键字引用,即无论怎么样,只能给本文件的程序使用,其他文件不能使用。(保护代码模块化,封闭外部接口)。

static变量和普通变量的区别:

static全局变量与普通全局变量区别:static全局变量只初使化一次,防止在其他文件单元中被引用;
static局部变量和普通局部变量区别:static局部变量只被初始化一次,下一次依据上一次结果值;
static函数与普通函数区别:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝。
在全局变量之前加上关键字static,全局变量就被定义成为一个全局静态变量。
1)内存中的位置:静态存储区(静态存储区在整个程序运行期间都存在)
2)初始化:未经初始化的全局静态变量会被程序自动初始化为0(自动对象的值是任意的,除非他被显示初始化)
3)作用域:全局静态变量在声明他的文件之外是不可见的。准确地讲从定义之处开始到文件结尾。





版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/212559.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午7:46
下一篇 2026年3月18日 下午7:47


相关推荐

  • DeepSeek 使用教程:从入门到精通的全流程指南

    DeepSeek 使用教程:从入门到精通的全流程指南

    2026年3月15日
    2
  • 1677个高频单词_3500高频词汇表

    1677个高频单词_3500高频词汇表给一非空的单词列表,返回前 k 个出现次数最多的单词。返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。示例 1:输入: [“i”, “love”, “leetcode”, “i”, “love”, “coding”], k = 2输出: [“i”, “love”]解析: “i” 和 “love” 为出现次数最多的两个单词,均为2次。 注意,按字母顺序 “i” 在 “love” 之前。 示例 2:输入: [“the”, “day”, “is

    2022年8月11日
    5
  • 智能手机Symbian操作系统入门知识整理

    智能手机Symbian操作系统入门知识整理1.什么是S60。    什么是OS6/7/8/9,什么是J2ME。    什么是MIDP根据人机界面的不同Symbian操作系统分为S60、S80、S90和UIQ,发展不同用户界面的目的是为了让手机厂商有更多的选择以投入Symbian手机的开发。S60用户界面(UI)专门为简便、单手使用而设计。S60平台提供了基于SymbianC的。    开放的。    标准的开

    2022年7月11日
    22
  • 华三交换机配置vrrp_h3c vrrp配置实例

    华三交换机配置vrrp_h3c vrrp配置实例1 组网需求如图所示 在承担网关功能的 SwitchA 和 SwitchB 上分别配置组号相同的 VRRP 备份组 用户 IPv4 网络中的主机将 VRRP 备份组作为缺省网关 要求满足如下需求 SwitchA 是 VRRP 备份组中的 Master 设备 用户网络的主机在正常情况下优先从 SwitchA 访问外网 当 SwitchA 故障时 SwitchB 能够迅速成为 Master 设备 承担转发任务

    2026年3月17日
    2
  • RocketMQ 发送失败重试机制 解析——图解、源码级解析

    RocketMQ 发送失败重试机制 解析——图解、源码级解析文章目录重试机制重试机制源码分析重试设置重试机制由于在复杂的分布式系统中 经常会有网络波动 服务器宕机 程序出现异常 所以就有可能出现消息发送或消费失败的问题 所以 MQ 就必须提供消息重试的机制 如果没有消息重试 就可能会产生消息丢失的问题 对系统产生较大的影响 整体示意图如下图所示 MQ 消费者的消费逻辑失败时 可以通过设置返回状态来达到消息重试的结果 MQ 消息重试只对集群消费方式生效 广播消息不提供失败重试的特性 消费失败后会继续往后消费新的消息 重试机制源码分析 发送消息

    2026年3月26日
    2
  • J2EE是什么?_servlet是什么

    J2EE是什么?_servlet是什么J2EE是Sun公司提出的多层(multi-diered),分布式(distributed),基于组件(component-base)的企业级应用模型(enterpriese application model).在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次(tier)中。所属层次包括客户层(clietn tier)组件,web层和组件,Bus

    2022年10月11日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号