a =!5<一个;在这行代码中完成了什么?

时间:2018-04-07 18:56:14

标签: c++

#include <iostream>
using namespace std;

int main() {
    float a =5;
    a = !5 < a;
    cout<<a;
    return 0;
}

这给出了输出&#34; 1&#34;,帮助我理解这一点。

3 个答案:

答案 0 :(得分:2)

!something_here0的情况外,

something_here将评估为0

由于0 < a,(0 < 5),a在解析为float时会获得true的值1

答案 1 :(得分:0)

!5 < a;

这是一个布尔表达式,导致truefalse,在将true转换为整数或浮点数时,会导致1,转换{ {1}}为您提供false

为了使代码更容易理解,这大致相当:

0

表达式的计算结果为float a =5; bool check = !5 < a; if(check) a = 1; else a = 0; cout<<a; ,因为true!5 == 00 < a

答案 2 :(得分:0)

表达式a = !5 < a;相当于a = (a > 0),由于a初始化为5(a > 0)会提供true,转换为然后浮动值1

那么为什么a = !5 < a;等同于a = (a > 0)?表达式!5相当于(5 == 0),显然是falsefalse用于与浮点值进行比较时转换为0,而0 < a至少是内置数据类型float - 相当于(a > 0)