#include<stdio.h>
int acc(int n)
{
static int f;
f=f+n;
return f;
}
int main(){
int i;
for(i=1;i<=5;i++)
printf("%d",acc(i));
return 0;
}
以上是程序,运行结果是:1361015
我的思路是i是n 然后f的值从哪里来呢?
f=f+n; f的值为累加n的值,还有什么地方不清楚呢
static int f的问题导致了f一直存在,你去看一下static的定义应该就明白了
static 定义的静态变量,编译时赋初值(如果没指定,默认是0),并且只赋初值一次,生存期一直到程序运行结束。