如果变量被初始化(i = 0),每次调用函数 func 时它仍然是 1,但是
当 i 未初始化时:
#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
我不明白为什么变量 i 表现得像静态变量!
最佳答案
该值未指定,所以一切正常。但是,每次调用 funct
时,可能会重用相同的内存,这样,就会重用相同的内存,并且 i
只是获取上次运行时留下的旧值.
关于c - 未初始化的局部变量是静态的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54795902/