本文主要介绍了C语言中的静态关键字,具有一定的参考价值。感兴趣的朋友可以参考一下,希望能帮到你。
一、static关键字的基本含义
首先静态关键字的意思是静态,用来修改局部变量,全局变量和函数及其数据存储类型。
1.局部变量:任何函数(无static)中定义的变量,初始值不确定的,被输出函数自动销毁,存放在栈区。当使用static修改这个变量时,编译器会将其初始化为零,并存储在静态区中。函数的返回值将保持不变,传出函数不会被销毁,下一个传入函数仍然存在。根本原因3354静态修改的局部变量存储在静态区域。
2.全局变量:普通全局变量在函数体之外定义。存储空间分配在静态区,编译器自动初始化。普通全局变量对整个项目可见,其他文档用关键字extern对外声明后可以直接使用。静态全局变量只对当前文件可见,其他文件不可访问。其他文件可以定义同名变量,两者互不影响。在定义不需要与其他文件共享的全局变量时,添加static关键字可以有效降低程序模块之间的耦合性,避免不同文件中同名变量的冲突,不会被误用。
3.函数:在函数的返回类型为静态函数前加static。比如:static int main()静态函数只能在声明它的文件中可见,其他文件不能引用这个函数。不同的文件可以使用相同的名称。静态函数非静态函数可以在另一个文件中直接引用。
二、static关键字的用法
1.使用普通局部变量时,如图,int a是局部变量,每次函数后自动销毁,所以打印出‘66666666’;
当使用静态局部变量时,如图。被static修改的局部变量除了在局部作用域之后不会被销毁,下一个入口函数依然存在。
2.如图,static的著名函数不能被另一个文件引用。
三、static关键字的原理
因为static修改的局部变量是存储在静态区的,所以static修改全局变量的时候,实际上是改变了变量的存储位置。局部变量放在堆栈区,被static修改后放在静态区。因此,生命周期不会结束,除非范围仍然存在。
如图为存储区示意图
总结
本文到此为止。希望能帮到你,也希望你能多关注我们的更多内容!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。