gpt4 book ai didi

c - 即使未声明为静态,变量仍保持其状态

转载 作者:行者123 更新时间:2023-12-04 20:00:36 24 4
gpt4 key购买 nike

我正在玩静态关键字。在下面的代码中,我无法弄清楚为什么 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 初始化为任何值。因此,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 = 0;
printf("%d\n", x++);
}

关于c - 即使未声明为静态,变量仍保持其状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7686044/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com