全局变量和静态本地变量

全局变量在函数外部定义,具有全局作用域和生存期,未初始化则默认为0或NULL。本地变量仅在函数内部有效,退出函数后会被释放。静态本地变量在函数内部持续存在并保留上次离开时的值,类似全局变量但作用域限制在函数内。返回全局变量、静态本地变量或malloc内存的地址是安全的,但返回本地变量地址可能导致风险。使用全局变量时要注意线程安全问题。
摘要由CSDN通过智能技术生成

全局变量

  • 概念:定义在函数外面的变量是全局变量
  • 特点:全局变量具有全局的生存期和作用域
    • 它们与任何函数都无关
    • 在任何函数内部都可以使用它们
  • 全局变量初始化
    • 没有做初始化的全局变量会得到0值
      • 指针会得到NULL值
    • 只能用编译时刻已知的值来初始化全局变量
    • 它们的初始化发生在main函数之前
  • 被隐藏的全局变量
    • 如果函数内部存在与全局变量同名的变量,则全局变量被隐藏
      在这里插入图片描述

本地变量

概念:在函数内部定义的变量
特点:只在函数范围内有效,也就是只有在函数内部才能使用他们。当函数使用完后,本地变量就会被释放掉。这意味着在其他函数中使用同名变量不会引起名称冲突。
在这里插入图片描述

静态本地变量

  • 在本地变量定义时加上static修饰符就成为静态本地变量

  • 当函数离开的时候,静态本地变量会继续存在并保持其值

  • 静态本地变量的初始化只会在第一次进入这个函数时做,以后进入函数时会保持上次离开时的值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值