gpt4 book ai didi

c - c 中局部变量的默认值是垃圾值,对吗?那为什么总是得到相同的输出呢?

转载 作者:行者123 更新时间:2023-11-30 18:18:43 25 4
gpt4 key购买 nike

void func();

int main() {
func();
func();
func();
}

void func() {
int a;
printf("%d\n",++a);
}

当我在 GCC 编译器中运行此 C 代码时,我得到的输出为

1 
2
3

为什么在不使用 static 的情况下会发生这种情况?关键字?

最佳答案

有两种情况需要考虑:

  • 如果局部变量是静态,则用零进行初始化;指针类型的static变量设置为NULL
  • 如果局部变量是自动变量,则根本不会初始化。从此类变量中读取而不先对其进行赋值是未定义的行为。

关于c - c 中局部变量的默认值是垃圾值,对吗?那为什么总是得到相同的输出呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32140438/

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