“b!=!a”和“c = !! a”是什么意思?

时间:2017-12-11 07:08:49

标签: c++ operators logical-operators boolean-logic

#include<iostream>
using namespace std;

int main()
{

    int a=10,b=5,c=3;
    b!=!a;
    c=!!a;
    cout<< b<<" "<< c<< "\n";
    return 0;
}

输出结果为:

5 1

2 个答案:

答案 0 :(得分:1)

b!=!a可以写成b != (!a)

表达式的计算结果为false

由于结果未存储在任何地方,编译器很可能会优化此行。

c=!!a可以写成c = !(!a)

第一个!a为您提供false(不是任何非零数字0),第二个!不会提供先前的结果,即:给你true。此值最终在c

变量abc的内容为11a未更改),5({ {1}}未被更改{} b1的结果)。

答案 1 :(得分:0)

join将被视为SELECT DISTINCT e.e_id,e.item,e.customer FROM ( SELECT E_ID, E_Date,Item,Customer, Row_Number() OVER(PARTITION BY Customer,Item ORDER By E_ID ) AS Rank FROM Events1 ) AS B join events1 AS e ON (b.item =e.item AND b.customer = e.customer and b.Rank > 1 AND b.Rank > 1 ) 。这只是一个比较,不做任何分配。 b!=!a;将为b != !ac=!!a;被解释为c = !(!a)。 1只意味着!a