声明静态变量时的输出是什么?为什么?

时间:2017-02-21 18:54:05

标签: c++

enter image description here enter image description here 当我在做++ 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的值会改变?

2 个答案:

答案 0 :(得分:0)

函数中声明为static的变量仅在第一次执行该行时初始化。

答案 1 :(得分:0)

提示:除了静态声明之外,你的hd()函数中的所有语句都被执行每次调用hd()。

如果这没有帮助,请使用调试器并在逐步执行hd()时观察j的值。