如果变量已初始化(i = 0),则每次调用函数func时仍为1
未初始化时:
#include <stdio.h>
int funct(void);
int main(void)
{
funct();
funct();
funct();
return 0;
}
int funct(void)
{
int i;
static int j = 0;
i++;
j++;
printf(" i = %d j = %d\n", i, j);
}
输出为
i = 1 j = 1
i = 2 j = 2
i = 3 j = 3
我不明白为什么我的变量表现得像静态变量!
答案 0 :(得分:4)
该值是未指定的,因此一切正常。但是,很可能每次调用funct
都会重用相同的内存,这样,相同的内存就会被重用,而i
只是从上一次运行中获得的旧值被提取。