static 是定义静态变量用的,在程序执行中他只会被初始化一次。
比如程序运行过程中a的值被改变后,又执行到static int a=1,这句,此时这句将不会被执行,a不会第二次被初始化。
如果是动态变量,int a=1,此时a便会被重新赋值为1
#include <stdio.h>
int fun(int *p){
static int t=0;
t=*p+t;
return t;
}
int main(void){
int a[5]={1,3,5,7,9},i,m;
for(i=0;i<5;i++){
m=fun(a+i);
printf("%4d",m);
}
printf("\n");
return 0;
}