理论上这段代码是死循环,因为判断条件是 i > 0 ,循环体里 i++ ,所以 i 的值是始终大于 0 的。但计算机硬件位数是有限的,那么当 i 增长到超出所能表达的数据范围的数时溢出,i 的值就出现 i < 0 的情形,此时就不满足循环的条件了,退出循环。上面的代码稍加改造,可以去运行下,供参考:
程序代码:
#include <stdio.h>
int main()
{
int i = 1;
while(i > 0){ i+=i; printf("%d ",i); }
return 0;
}
[此贴子已经被作者于2022-11-5 22:13编辑过]