gpt4 book ai didi

c - 为什么在下面的示例中循环不会无限运行?

转载 作者:行者123 更新时间:2023-11-30 19:55:14 24 4
gpt4 key购买 nike

这是我的示例代码:

int main()
{
static int i = 5;
if(--i)
{
main();
printf("%d ",i);
}
}

为什么打印0 0 0 0?为什么循环不是无限的?这个问题是从 geeksforgeeks 中摘取的。

最佳答案

main 将被自身调用 4 次,并且 i 会重复递减。由于 i静态,因此相同的 i 用于 main 的所有调用。

在递归被阻止之前,不会向控制台输出任何内容。到那时i为零。

顺便说一句,main 调用自身的行为在 C++ 中是未定义,尽管在​​ C 中是允许的。如果您使用的是 C++ 编译器,请确保将编译器标志切换为 C。

关于c - 为什么在下面的示例中循环不会无限运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35404874/

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