#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
答案 0 :(得分:1)
b!=!a
可以写成b != (!a)
表达式的计算结果为false
。
由于结果未存储在任何地方,编译器很可能会优化此行。
c=!!a
可以写成c = !(!a)
第一个!a
为您提供false
(不是任何非零数字0
),第二个!
不会提供先前的结果,即:给你true
。此值最终在c
。
变量a
,b
,c
的内容为11
(a
未更改),5
({ {1}}未被更改{} b
(1
的结果)。
答案 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 != !a
。 c=!!a;
被解释为c = !(!a)
。 1只意味着!a
。