static
静态全局变量,我觉得被静态全局变量使用后,在这一段代码中它的值是一直变化的,并不是一成不变的,假如说它进行了一个循环语句,他就会在这整个循环中存在,直到循环彻底结束,而不是循环一次就被定义一次,它不是一成不变的.
static变量是声明全局变量,在局部函数退出的时候,全局变量的值还是保存在函数中,直到主函数的结束!
如下面例题:
#include<stdio.h>
int sum(int a){ //定义的一个加的函数
int c=0;
static int b=3; //将b定义为静态全局变量
c+=1; //每次自增1
b+=2;
return (a+b+c); //输出和
}
int main(){ //主函数
int i;
int a=2;
for(i=1;i<5;i++){ //利用for循环,使得连续输出5个数
printf("%d",sum(a)); //用整型进行输出,并在后面将自己写的函数进行了调用
}
}
结果: 8 10 12 14 16
这里的静态变量就相当于一个全局变量,它的值是每一次都在增加的,结果的不同就是因为有static变量的出现,其他的变量在这个函数结束的时候就会自动释放空间,而全局变量不一样,它还是一直保存着的