关于静态变量疑问
#include <stdio.h>inta=2;
intf()
{static intn;
intm;
m=n=0;
n++;a++;m++;
returnn+m+a;
}
main()
{intk;
for (k=0; k<3; k++)
printf("%d,", f( ));
printf("\n");
}
程序的运行结果是
不理解:本题的静态变量不是n么,怎么成了a为静态变量了,为什么不是输出5,5,5,呀{:5_94:}
请大佬指正{:5_96:}
#include <stdio.h>
inta=2;
intf()
{
static intn;
intm;
m=n=0;
n++;a++;m++;
returnn+m+a;
}
int main()
{
intk;
for (k=0; k<3; k++){
printf("%d,", f( ));
}
printf("\n");
}
/*
1. 进过mian函数运算 k = 3也就是说 mian函数会调用3次 f函数
2.n = 0; m = 0; a = 3
3.第一次 返回 1 + 1 + 3; n = 1; m = 1; a = 3
4.第二次 返回 1 + 1 + 4 n = 1; m = 1; a = 4
5.第五次 返回 1 + 1 + 5 n = 1; m = 1; a = 5
为什么n 不是静态变量?
你看看你的f函数的赋值行为~
每一次都会把n清零
还有记得给mian函数加上类型~ 我帮你加上了~
*/
页:
[1]