【发布时间】:2020-08-26 14:02:28
【问题描述】:
下面是我的代码:
//main.c
int f()
{
static int x = 0;
x += 1;
return x;
}
int main()
{
f();
printf("%d", f());
}
输出为2。
我知道静态变量会保持状态,但是由于我调用了两次f(),每次x首先设置为0(static int x = 0;),然后加1,那么输出应该是1不管我打了多少次f()?
【问题讨论】:
-
在回答之前:考虑一下这个问题已经有 8 个答案,而且这个话题相当基础。您的回答是否增加了一些新的内容或以显着的方式改进了已经说过的内容?