A = B == 1的含义是什么

What is the meaning of A += B == 1

本文关键字:是什么      更新时间:2023-10-16

我遇到了一种操作员=的一种使用。就是这样:

A += B == 1;

a和b是整数,而我在功能主体中发现的这种用法。

我只是与第二个==使用混淆。

当然我知道 A = B = 1;

的含义

有人可以解释我吗?

此代码:

 A += B == 1;

逻辑上等于:

bool b = B == 1;
A += b;

注意:bool可以隐式转换为int(true至1和false至0(

==+=具有更高的优先级,因此首先执行

B == 1是一个布尔表达式,可以是false或true

让我们称之为bool'结果'。

A += result是一个加法 分配(如您可能已经知道的A = A + result(。

在您的情况下,A是int,因此,如果true(如果为true(,布尔 result被隐式转换为数字1,则为0。(它也适用于其他数字类型(

更多关于隐式转换的信息:http://en.cppreference.com/w/cpp/language/implitic_conversion

so,最后,这在逻辑上等同于"当a递增A,并且仅当B等于1":

if (B == 1)
  A += 1;