我正在玩静态关键字。在下面的代码中,我无法弄清楚为什么x在状态和增量之前保存它。 我期待打印1树时间。据我所知,如果我将x声明为静态,则应该发生这样的行为。变量保持其状态,即使未声明为静态
void print_it(void);
int main (int argc, const char * argv[])
{
print_it();
print_it();
print_it();
exit(EXIT_SUCCESS);
}
void print_it(void)
{
int x;
printf("%d\n", x++);
}
我想他留下了一个静态的声明和x的初始化,并且他想要是指在他的'print_it'功能X,太行'INT x = 0;'应该完全移除,x应该是全局的。 – Paulpro
“,因为它可能每次都使用相同的内存位置。”完全正确,变量在堆栈上,并且因为没有干预代码来擦除它,所以它保持不变。 –
谢谢Aamir!这是我正在寻找的。 – jingo