大家帮看一下为什么一直循环“问君能有几多愁”,按理说循环四次之后就不会出现问君能有几多愁,死循环本人知道,但是

C++语言 码拜 9年前 (2016-06-06) 938次浏览
大家帮看一下为什么一直循环“问君能有几多愁”,按理说循环四次之后就不会出现问君能有几多愁,死循环本人知道,但是
int main()
{
int i = 0;
for(;;)
{
i++;
if (i < 5)
{
cout << “问君能有几多愁!\n”;
}
}
return 0;
}
解决方案

10

原因是计算机中,某种类型的整数的个数是有限的
当i++ 达到最大值的时候,下一轮循环,就又回到最小值了(这叫溢出的折回现象)
i 从绝对值最大的负数,到4 ,都是都是 i<5

20

i>5后循环还在继续,只是没有输出,溢出后又循环

20

当你的i超过4294967296后,就发生了溢出

10

溢出成负数了,一直愁,愁死人

喜欢 (0)
[1034331897@qq.com]
分享 (0)