C语言static关键字的用法

在C语言中static的作用如下

static作用:“改变生命周期” 或者 “改变作用域”

1. 在修饰变量的时候,static修饰的静态局部变量只执行一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放
例如:

      							#include <stdio.h>
      							int i= 1;
								void fun(void)
								{
									static int count = 0; 
									count++;
									printf("count=%d\n",count);
								}
								int main(void)
								{
									while(1)
									{
										 fun();
									}
								    return 0;
								}

程序的运行结果是: 在这里插入图片描述
由执行的结果可以看出来,用static修饰的局部变量每次在进入申明它的函数的时候,都是保持着上次执行完成该函数时变量的值。这就说明了static改变了局部变量的生存周期,使得局部变量在程序结束后才释放掉。

2. static修饰全局变量的时候,这个全局变量只能在本文件中访问,不能在其它文件中访问,即便是extern外部声明也不可以。

3. static修饰一个函数,则这个函数的只能在本文件中调用,不能被其他文件调用。Static修饰的局部变量存放在全局数据区的静态变量区。初始化的时候自动初始化为0。
(1)不想被释放的时候,可以使用static修饰。比如修饰函数中存放在栈空间的数组。如果不想让这个数组在函数调用结束释放可以使用static修 饰
(2)考虑到数据安全性(当程想要使用全局变量的时候应该先考虑使用static)

最后对static的三条作用做一句话总结。首先static的最主要功能是隐藏,其次因为static变量存放在静态存储区,所以它具备持久性和默认值0。

猜你喜欢

转载自blog.csdn.net/qq_39654819/article/details/87894083