我正在玩靜態關鍵字。在下面的代碼中,我無法弄清楚爲什麼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