当我在做++ i时,我有点混淆为什么静态变量的值会发生变化?
void hd()
{
int i = 10;
static int j = 20;
printf("i=%d j=%d",++i,++j);
}
main()
{
hd();
hd();
}
输出 i = 10 j = 21 i = 10 j = 21
为什么J的值会改变?
答案 0 :(得分:0)
函数中声明为static
的变量仅在第一次执行该行时初始化。
答案 1 :(得分:0)
提示:除了静态声明之外,你的hd()函数中的所有语句都被执行每次调用hd()。
如果这没有帮助,请使用调试器并在逐步执行hd()时观察j的值。