前言:
而今朋友们对“c语言中static变量如何变化”大概比较珍视,朋友们都想要剖析一些“c语言中static变量如何变化”的相关文章。那么小编在网摘上网罗了一些对于“c语言中static变量如何变化””的相关资讯,希望我们能喜欢,同学们快快来学习一下吧!c语言static关键字有3种用法
全局static变量
在全局变量前加static 此变量作用域被限制在本文件中可见,如果以文件作为模块,变量增加static类似于本模块的私有变量,如果没有初始化此变量的话和全局变量一样默认会初始化为 0。
局部static变量
局部static变量为函数内部变量前加static关键字,此变量生存期超越普通局部变量,其实编译器内部实现就是全局static变量,只不过这个全局变量,只能在定义此变量的函数内访问,它的作用域只在此函数中。
static函数
在函数前面加static关键字和全局变量一样,函数变成私有本文件内有效。
一. 全局static变量
static int a1; //初始化为0, 本文件内有效 int b1; //初始化为0, 可以被外部文件引用 int main(void) { printf("%d\n", a1); return 0; }局部static变量
void fn1(void) { static a1 = 0; //第一次进入此函数调用此语句,再次进入不调用 a1++; //每次进入函数都加1 printf("value a1:%d\n", a1); }int main(void) { for (int i = 0; i < 10; i++) fn1(); } //最终程序会打印出 9全局static函数
static fn1(void) //此函数仅仅在定义此函数的文件中可见,不能被外部文件调用,类似于c++中的私有函数 { printf("I'm fn1\n"); }
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。