C+中比较器语句的含义+; 我在C++中阅读这个代码 我不明白代码中的&=是做什么的: int k = 5; int ts = 5; bool possible = true;

C+中比较器语句的含义+; 我在C++中阅读这个代码 我不明白代码中的&=是做什么的: int k = 5; int ts = 5; bool possible = true;,c++,if-statement,comparator,C++,If Statement,Comparator,它有这样一条线: if(!(possible &= k == ts)) break; 我想知道的含义是什么?我是C++语言的新手,我从来没有见过这样的东西,比如说java,或者至少我不知道这个意思。 语句的右侧返回“1”,因为(k==ts)即(5==5),但左侧(可能&=k)不知道其含义 谢谢这相当于: possible &= (k == ts); if (! possible) 并进一步等同于 possible = possible & (k == ts)

它有这样一条线:

if(!(possible &= k == ts)) 
    break;
我想知道<代码>的含义是什么?我是C++语言的新手,我从来没有见过这样的东西,比如说java,或者至少我不知道这个意思。 语句的右侧返回
“1”
,因为(
k==ts
)即(
5==5
),但左侧(
可能&=k
)不知道其含义

谢谢

这相当于:

possible &= (k == ts);
if (! possible)
并进一步等同于

possible = possible & (k == ts);
if (! possible)
这里,
&
是按位AND<如果
num
的最低有效位为
1
0
,则code>num&0将始终为您提供
0
,而
num&1
将为您提供
1

要继续阅读,请查看

它相当于:

possible &= (k == ts);
if (! possible)
并进一步等同于

possible = possible & (k == ts);
if (! possible)
这里,
&
是按位AND<如果
num
的最低有效位为
1
0
,则code>num&0将始终为您提供
0
,而
num&1
将为您提供
1

要继续阅读,请查看

    • &=正在将结果分配给lhs(a&=b=>a=a&b)。(如+=)

      它将执行逻辑AND,并将结果分配给可能的


      由于表达式类似于:
      可能&=(k==ts)

      这意味着它将求值
      (k==ts)
      生成一个布尔值,使逻辑and与
      成为可能
      ,将其存储在
      可能
      中并作为结果返回。

      &=将结果分配给lhs(a&=b=>a=a&b)。(如+=)

      它将执行逻辑AND,并将结果分配给可能的


      由于表达式类似于:
      可能&=(k==ts)


      这意味着它将求值
      (k==ts)
      生成一个布尔值,使逻辑and与
      成为可能
      ,将其存储在
      可能
      中,并返回结果。

      它是一个按位and赋值,这是一个。这相当于以下陈述:

      possible = possible & (k == ts);
      if(!possible)
          ....
      

      请注意,许多人认为您的原始代码样式是反模式的,您通常应该避免在
      if
      语句中赋值(例如and)。

      它是按位and赋值,这是一种。这相当于以下陈述:

      possible = possible & (k == ts);
      if(!possible)
          ....
      

      请注意,许多人认为您的原始代码样式是反模式的,您通常应该避免在
      if
      语句(例如and)中指定作业。

      您应该打写该代码的人。@OliCharlesworth可能是,他不允许打他的老师;)。。。你应该打那些编写代码的人。@OliCharlesworth可能是不允许他打他的老师;)。。。