为什么这个循环(到10亿)只需要几个声音来执行...
for (i = 0; i < 1000000000; i++)
{
}
Run Code Online (Sandbox Code Playgroud)
...但这个循环(达到100亿)需要> 10分钟?
for (i = 0; i < 10000000000; i++)
{
}
Run Code Online (Sandbox Code Playgroud)
它不应该只需要30秒左右(3秒x 10)?
Chr*_*ica 11
我猜i是一个32位整数变量因此总是小于100亿(大于2 ^ 32),而10亿仍然适合32位范围(最终约为2或40亿,取决于符号类型).虽然我不知道编译器如何推广这个100亿常量,但他似乎意识到溢出问题并使其成为一个有效循环.
你做i一个long long int(也许是10000000000a 10000000000L,但似乎没有问题)会发生什么?