#include <stdio.h>
int a=2;
int f()
{
static int n;
int m;
m=n=0;
n++; a++; m++;
return n+m+a;
}
main()
{
int k;
for (k=0; k<3; k++)
printf("%d,", f( ));
printf("\n");
}
这个n++ 第一次是1 第二次是1 第三次是2 第二次为什么是1而不是2?
每次进入f()函数,m和n都要先赋值为0,然后执行++操作,m和n的值应该每次都是1吧,只有a是全局变量,每次a的值都会+1。