c++ - "if"c++ 中的语句不从左到右计算条件

标签 c++ c++11 c++14 integer-division divide-by-zero

我指的是问题“ "IF" argument evaluation order? ”以了解 c++ 中“if”语句的评估顺序。

这是 if 语句中的条件以错误的顺序求值的代码。

#include <iostream>

using namespace std;

int main()
{
    int t = 0;
    if((1 / t) == 1 && t != 0)
    {
        cout << "0" << endl;
    }

    cout << "1" << endl;

    return 0;
}

结果为 1 而不是浮点异常。

最佳答案

被零除是未定义的行为。任何事情都有可能发生。

[expr.mul]/4

If the second operand of / or % is zero the behavior is undefined.

关于c++ - "if"c++ 中的语句不从左到右计算条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52620983/

相关文章:

c++ - 来自指针的 boost::shared_ptr

c++ - 模板替换在调试构建中失败,但在优化构建中工作?

c++ - 使用结构标识符来表示 POD 类型和 C 结构

c++ - 限制模板函数,只允许某些类型

C++ : elegantly iterate a set of numbers

c++ - Windows 身份验证 token C++

c++ - 如何在 C++ 中获取图层类型的 caffe

c# - POCO 1.5.1 Websocket 客户端无法连接到 c# websocket 服务器

c++ - Black Magic 使用 Initializer_list 和包扩展

c++ - 当此构造函数采用初始化列表并委托(delegate) vector 时,是什么导致此构造函数委托(delegate)给自身?