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可能是不允许他打他的老师;)。。。