c - 错误:表达式必须是可修改的 l 值
问题描述
我试图将数组的每个值乘以一个整数,但是我目前遇到以下错误:“表达式必须是可修改的左值”。这段代码的目的是,当按下按钮时,矩形放大了 2 的标量因子。如何解决这个错误?
void Draw_Rectangle(unsigned int *rectangle1)
{
// Call draw rectangle function to draw rectangle 1
GraphicsFunction_drawRectangle (*rectangle1, *(rectangle1 + 1));
}
int main (void)
{
unsigned int rectangleOne[4] = {85, 5, 130, 20};
// Call function to draw the rectangle in initial position
Draw_Rectangle(&rectangleOne[0]);
while(1) {
if(*(SWITCH_ptr) == 512) {
int i = 0;
for(i = 0; i < 4; i++){
&rectangleOne[i] = rectangleOne[i] * 1.5;
}
Draw_Rectangle(&rectangleOne[0]);
}
}
}
解决方案
改变:
&rectangleOne[i] = rectangleOne[i] * 1.5;
至:
rectangleOne[i] = rectangleOne[i] * 1.5;
或者更简单地说,只是:
rectangleOne[i] *= 1.5;
原始版本的问题在于它试图分配给数组元素的地址,而不是数组元素本身。
推荐阅读
- python - 逐字节读取文件而不超出内存限制
- python - 计算列表中二维对 (x,y) 的反转
- python - 是否可以在多元回归中使用单个变量进行预测?
- python - 如何在@hybrid_method 中使用 min 函数?
- java - 启动 Spring Boot 后第二次获取 ClassNotFoundException
- python - Python:selenium webdriver点击按钮执行问题
- swift - 如何在 PDFView 中移动 PDFPage 上的 PDFAnnotation?
- jquery - 使用 vue.js 在图像上传时保存图像类型
- excel - 根据另一列中的值为一列的空白单元格着色
- r - R 的 caTools Sample.Split 结果不正确