这个问题在这里已有答案:
如果变量被初始化(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
我不明白为什么变量我的行为像静态变量!
该值未指定,因此任何事情都会发生。但是,很可能每次调用funct
时都会重复使用相同的内存,然后重复使用相同的内存,而i
只会获取上一次运行中留下的旧值。