深入解析C语言中Static关键字的作用与用法

详解C语言中的Static关键字

深入解析C语言中Static关键字的作用与用法

2022 年 01 月 18 日 15 时 29 分 47 秒进行了更新,作者是 build.code。

这篇文章主要向大家介绍了 C 语言里的 Static 关键字,它有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能给你带来帮助。

一、static关键字的基本含义

static 关键字意味着是静态的。它可以用来修饰局部变量、全局变量和函数,进而对它们的数据储存类型进行修改。

局部变量是在任意一个函数内部定义的变量(且不加 static),其初始值不确定,当函数结束时会自动销毁,并且存放在栈区。当使用 static 来修饰这个变量时,编译器会将其初始化为零,然后存储在静态区。在函数返回后,该变量的值保持不变,即使函数结束也不会被销毁,当下一次进入该函数时,它依然存在。其根本原因在于,static 修饰的局部变量是存储在静态区的。

普通全局变量定义于函数体外部,其存储空间在静态区分配,且编译器会自动对其进行初始化。整个工程都能看到普通全局变量,其他文件在使用关键字 extern 进行外部声明后,就可以直接使用它。静态全局变量仅在当前文件内可见,其他文件无法访问,其他文件也可以定义与静态全局变量同名的变量,二者互不影响。定义不需要与其他文件共享的全局变量时,加上 static 关键字。这样能有效降低程序模块之间的耦合。还能避免不同文件同名变量的冲突。并且不会被误使用。

函数:如果在函数的返回类型前加上 static,那么这个函数就是静态函数。例如:像 static int main()这样的。静态函数仅仅能够在声明它的文件中被看见,其他文件无法引用该函数。不同的文件可以使用名字相同的静态函数。而非静态函数能够在另一个文件中直接被引用。

二、static关键字的用法

使用普通局部变量时,例如图中的 int a 是一个局部变量,每次函数执行结束后它会自动被销毁,因此会打印出“6666666666”。

使用静态局部变量时,情况如下。static 修饰的局部变量,在超出局部范围后不会被销毁。当下一次进入函数时,它依然会存在。

2.如图 ,static声名的函数不能被另一个文件引用

三、static关键字的原理

局部变量通常存放在栈区,而被 static 修饰的局部变量则存放在静态区。当 static 修饰全局变量时,实际上改变的是变量的存储位置。所以,被 static 修饰的局部变量,除了作用域依然存在外,其生命周期并未结束。

如图为存储区示意图

总结

本篇文章到此结束啦。希望能对你有所帮助呢,也期望你能多多留意脚本之家的更多内容哦!

你可能想看:
« 上一篇
下一篇 »

相关推荐

FreeBasic:强大免费开源的64位basic编译器及应用优势

2025年05月10日

82阅读

脊柱侧弯矫正方法大盘点:运动康复、支具矫正等多种方式

2025年05月09日

88阅读

如何在winForm标题栏去掉标题文字且任务栏图标正常显示

2025年05月09日

86阅读

十一黄金周促销广告词大全,国庆购物狂欢等你来

2025年05月09日

78阅读

关闭快速编辑模式及插入模式,设置控制台指定文字颜色举例

2025年05月09日

63阅读

黄金搭档低糖高钙饮品包装及成分功效全解析,适合人群要知晓

2025年05月09日

91阅读