我看到这个问题有很多不同的答案,看了很多但我找不到问题的答案。
我得到的错误是
bitarray.c:27:19: error: lvalue required as left operand of assignment
(newArr << i) ^= 1;
有什么想法吗? 感谢
答案 0 :(得分:3)
您正尝试从操作中为结果分配另一个结果。请尝试以下正确方法:
newArr = (newArr << i) ^ 1;
这个想法是你必须有一个有效的lvvalue和“&lt;&lt;”的临时结果不是有效的。你需要一个像newArr这样的变量。关于SO的以下答案解释了与这种情况相关的许多术语:
What are rvalues, lvalues, xvalues, glvalues, and prvalues?
希望我对这个问题有所了解!
答案 1 :(得分:0)
“&LT;&LT;”是一个二进制运算符,就像“+”或“ - ”。 需要将其分配给变量。 对于Eg。你不能只写这个 A + B; 正确的方法是 c = a + b;