【发布时间】:2022-11-30 03:19:20
【问题描述】:
所以这是一个例子:
#include <stdio.h>
int main(void) {
static int i=0;
printf("%d",i);
static int i=0;
printf("%d",i);
return 0;
}
这给了我一个错误:error: redefinition of 'i'
现在这是另一个例子:
#include <stdio.h>
void increment(void) {
static unsigned int counter = 0;
counter++;
printf("%d ", counter);
}
int main(void) {
for (int i = 0; i < 5; i++) {
increment();
}
return 0;
}
这给出了输出:1 2 3 4 5
为什么会这样?
在第二个例子中,我们不是通过调用函数来重新声明它吗?输出不应该是1 1 1 1 1 吗?
【问题讨论】: