("<<") 在 C++ 中是什么意思?

What does ("<<") mean in C++?

我不明白 a<<b 是如何工作的。

它对 a+= arr[i][j] ==0 && tfunc(i,j); 究竟意味着什么?

是否表示:

if (arr[i][j]==0 && tfunc(i,j) == true)
    a += 1;

部分代码如下:

int *eFunc(int* a) const{
   for(int i=0; i<8; ++i){
      for(int j=0; j<8; ++j){
         *a = b <<3^j; 
          a+= arr[i][j] ==0 && tfunc(i,j); 
      }
   }
   return a;
 }

提前致谢

*a = b <<3^j; 

感谢@Holt 指出 << 的优先级高于 ^。让我们一步一步来:

(b << 3) ^ j
b << 3     // Bitshifting operator. Shift b to the left by 3`
           // So for b = 0b0001  you get 0b1000 = 8
       ^ j // XOR with j for example
           // 0b1000 ^ 0b0010 = 0b1010 = 10

并在最后将该值分配给 a 指向的位置。

a+= arr[i][j] ==0 && tfunc(i,j); 
    arr[i][j] ==0                // if the element [i][j] from arr == 0 return true
                     tfunc(i,j)  // return of tfunc
                  &&             // if both statements are !=0, results 
                                 // in true, else in false
a+=                              // a = a + true or false is equal to
                                 // a = a + 1    or 0