有人可以解释下面这段代码
int x = 45;
int y = x &= 34;
Run Code Online (Sandbox Code Playgroud)
它指定32到 y
Jon*_*eet 25
它作为复合赋值运算符执行按位"和".它相当于:
int x = 45;
x = x & 34;
int y = x;
Run Code Online (Sandbox Code Playgroud)
现在45 = 32 + 8 + 4 + 1,34 = 32 + 2,因此按位"和"的结果为32.
我个人认为在变量声明中使用复合赋值运算符是非常难以理解的 - 但可能这不是"真正的"代码开始...
Bas*_*ers 10
int x = 45;
int y = x &= 34;
Gives: y = 32
int x = 45; // 45 = 101101
// 34 = 100010
x = x & 34; // 101101
// 100010 &
// --------
// 100000 ( = 32 )
int y = x; // y = 32
Run Code Online (Sandbox Code Playgroud)