c语言static关键字

#include<stdio.h>
#include<stdlib.h>
main(){
int i;
char *day_name(int n);
printf("input Day No:\n");
scanf("%d",&i);
if(i<0) exit(1);
printf("Day No:%2d-->%s\n",i,day_name(i));
return 0;
}
char *day_name(int n){
static char *name[]={ "Illegal day",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday"};
return((n<1||n>7) ? name[0] : name[n]);
}
被调函数中的static起什么作用?不加也可以啊,菜鸟。。。

静态分配的变量。在编译阶段就已经为该变量分配内存并初始化,有别于函数中的动态分配的局部变量,他们只在调用该函数时分配内存,调用结束后内存被释放,而STATIC变量是静态分配的,函数调用结束后仍然存在,不管程序中有多少次调用,都使用同一个内存地址。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-02-22
加了static以后,这个变量只会被初始化一次,

而如果不加,每次调用函数都会初始化一次.
第2个回答  2009-02-22
static 表示运行一次,再次调用时无效果。其效果要多次调用才会显现。
相似回答