在 C++ 中对 if 语句中的 int & int 的澄清

clarification of int & int inside a if statement in C++

本文关键字:int C++ 中对 if 语句      更新时间:2023-10-16

语句返回的是单个位还是多个位的连接?

if(mask[i] & groupbit) {
    //...
}

:

  • i =一个整数
  • mask[i] =整型指针元素
  • groupbit =整数

将得到一个完整的整数。当您使用按位和时,两个值的每个位被和在一起,并且结果中的每个位被相应地设置。结果将是与被加和的值相同的位数。

假设mask是一个指向整数类型的指针,编译器将执行以下操作:

  1. 以整数形式访问mask"数组"的i -th元素
  2. 确保两个操作数的大小相同(这可能涉及位扩展或截断)
  3. 做位AND
  4. 如果在前一个AND操作的结果中设置了一个位,则该值将被视为true,否则作为false(如果结果的每个位都是0)