为什么我的代码会因浮点异常而崩溃?

时间:2017-03-12 21:40:04

标签: c++ visual-studio

由于我无法理解的原因,这会导致浮点异常崩溃。

这是令人惊讶的,因为我的代码中似乎没有任何浮点运算,我也没有将i设置为0。我甚至在代码中添加了i * i != 0以确保是这种情况。

请有人帮帮我吗?

这是我的代码:

#include <iostream>

int main() {
    const int A = 42;
    int i;
    i * i != 0;
    for (i = 1; i < 99999999; i++) {
        if (A % (i * i) == 0) {
            std::cout << i << std::endl;
        }
    }   
}

1 个答案:

答案 0 :(得分:3)

您的代码正在调用未定义的行为,因为

i * i != 0
在初始化i之前出现

,因此您可以理解您的程序的行为,因为发生了未定义的行为,并且可能发生的事情之一是i == 0在某些时候。

此外,该声明绝对没有任何内容,因此毫无意义。