#include <stdio.h>
int AddOne(){
static int ilnt=1;
ilnt=ilnt*3;
return ilnt;
}
int main(){
int val,i;
for(i=1;i<=3;i++)
val=AddOne();
printf("3的立方为:%d",val);
getchar();
return 0;
}
for(i=1;i<=3;i++)
static int ilnt变量是静态变量,他的值是存放在静态存储区的。所以,他的变量的生存周期是整个程序的运行期间 所以,函数结束后,他的生命周期没有终结 也就是内存不会被释放
因为for(i=1;i<=3;i++)执行两次 val=AddOne();
当第一次执行AddOne函数时,val变量的值变成9 函数结束后,他的值还是9
当第二次执行AddOne函数时, ilnt=ilnt*3; ilnt=9*3=27
所以,结果才会这样的