gpt4 book ai didi

c - 为什么下面的代码是死循环? (for循环)

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

这段代码来自《C 编程 - 现代方法》一书中的练习。

for(i=10;i>=1;i/=2)
{
printf("%d", i++);
}

编辑:

第一个输出应该是 10,并且在循环的下一步中它应该增加 1。但是当我运行此代码时,我得到的只是 1,而且它永远不会停止打印 1。

请帮我理解这段代码。

最佳答案

这段代码表示

for( start with 10 ; as long as it is greater or equals 1 ; divide i by 2){
Print i;
add 1 to i
}

所以:

start with 10:
print 10;
10 + 1 = 11
11 / 2 = 5,5 = 5 because it's int
print 5
5 + 1 = 6
6 / 2 = 3
print 3
3 + 1 = 4
4 / 2 = 2
print 2
2 + 1 = 3
3 / 2 = 1
print 1
1 + 1 = 2
2 / 2 = 1
print 1
1 + 1 = 2
2 / 2 = 1
.... and it will continue forever and ever

for循环的执行顺序:

for([init];[1];[3]){
[2]
}

当然,顺序 [1],[2],[3] 会重复,直到 [1] 不再为真

关于c - 为什么下面的代码是死循环? (for循环),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12198248/

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