关于static的知识

一、核心基础:static 的本质作用

static 的核心是控制两个关键属性:

  1. 存储周期:变量的 “生命周期”——static 变量存储在全局数据区(而非栈 / 堆),程序启动时分配内存,程序结束时释放(全程只初始化一次);
  2. 作用域 / 链接属性:变量 / 函数能被哪些代码访问 ——static 会缩小作用域(如局部 static 仅在函数内可见,全局 static 仅在当前文件可见)。

二、分场景详解 static 的用法

修饰局部变量(最常用场景)

局部变量默认存储在栈区,生命周期仅限于函数调用(每次调用重新初始化,函数结束后销毁)。static 修饰后,局部变量的行为发生根本改变:

核心特性:

存储位置:从栈区移到全局数据区

生命周期:程序启动时创建,程序结束时销毁(全程存活);

初始化:仅在第一次函数调用时初始化(后续调用跳过初始化,保留上次的值);

默认值:未显式初始化时,默认被编译器初始化为 0(栈上局部变量默认是随机垃圾值);

作用域:仍仅限于当前函数内(只能在函数内部访问,外部无法直接获取)。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务