表达式必须是可修改的左值(尝试附加到数组时)

Expression must be a modifiable lvalue (when attempting to append to an array)

我有以下内容:

uint16_t Hitcount[64]; //64-byte array buffer 
uint16_t Br; 
int StdWidth = 38;
int widthpad = 8;
int W;
uint16_t blocks;


if (W <= (StdWidth + widthpad) && W >= (StdWidth - widthpad) && blocks == 1) {
        Hitcount += Br;
    }

我的目标是如果 "W" 在某个范围内,则将 "Br" 附加到数组 "Hitcount"。但是,"Hitcount" 指示错误 "Expression must be a modifiable lvalue"。难道我的数据类型和一切都井井有条吗?

如果这与已发布的其他问题太接近,我们深表歉意。我看着它们,但以我有限的知识无法将它们与这种情况联系起来。

Hitcount += Br;

您不能像这样向 C 样式数组添加值。您要么需要维护元素计数并添加这样的值:

Hitcount[count++] = Br;

或者您最好使用 std::vector 并通过调用 push_back:

添加元素
std::vector<uint16_t> Hitcount;
// code skipped
Hitcount.push_back( Br );

普通 C/C++ 数组不能像 string 对象那样扩展。考虑使用 std::vector.