关于C++里面的符号的问题

我看到了一个奇怪的东西,如下图:


问题来了,第10行的 &= 和第16行的 & 是什么意思??

&是一个逻辑符号,返回一个布尔值。


boolean caseword=true;
casword&=true;
//这一个表达式的意思是,返回true&&true的值。
printf(caseword);
//输出true

&是算术与
&=
就跟+=一样
a &= b
等价于
a=a&b