无限循环是否被认为是“运行时错误”?(C)
我有这个问题:
#include <stdio.h>
int main()
{
float s;
for (s = 100000001.0f; s <= 100000010.0f; s += 1.0f) {
};
printf("SLABCn");
return 0;
}
它是无限循环,因为浮动的东西。但是如果这被认为是“运行时错误”或“什么都不打印”
回答
我假设您使用的是早于 C11 的版本,因为大学通常教授旧版本。如果没有,请查看MM的答案。
无论如何,我们可以看看所有的答案:
- 不编译:这是错误的。这个程序完美编译。但是,它可能会发出警告,这与错误不同。
- 导致运行时错误:否。这段代码一直在运行。它将永远留在
for循环内,甚至更远(或者只是关闭程序而不是戏剧性的)。第 3 点相同。 - 打印 SLABC:否。它留在
for循环内。阅读第 2 点以获取更多信息。 - 什么都不打印:这是正确的答案。没有错误,程序将执行所有内容。
你的程序本质上就像我的清单。如果你正确地遵循它,你会卡在第 2 点和第 3 点之间,永远无法阅读第 4 点。但你比那更聪明。