C语言错误:left operand must be l-value

[复制链接]
查看11 | 回复5 | 2019-6-6 01:37:29 | 显示全部楼层 |阅读模式
error C2106: '=' :left operand must be l-value 表示等号左边必须为一个左值,该处错误为等号左边为*p+i\j是表达式,不是一个左值。问题分析C语言的符号优先级表格(部分)如下表:由该表格可知取值符 * 运算优先级高于加法运算符 +,因此 *p+i 和 *p+j 的运算均为先取值再加上变量,结果为一个数值,无法作为左值被赋值,只能用于赋值或比较故产生了该错误。解决方法该设计思路为先计算p+i作为地址再进行取值操作,故此处可以使用括号修改代码,修改结果如下:...
回复

使用道具 举报

千问 | 2019-6-6 01:37:29 | 显示全部楼层
出现该错误提示是因为语法错误。“left operand must be l-value”的意思是左操作数必须是左值。左值(l-value):出现于“=”左边的标识符。(为变量)。右值(r-va...
回复

使用道具 举报

千问 | 2019-6-6 01:37:29 | 显示全部楼层
这句话“left operand must be l-value”左操作数必须是左值左值(l-value)。出现于“=”左边的标识符。为变量右值出现于“=”右边的标识符。变量或表达式表达式是产生确定...
回复

使用道具 举报

千问 | 2019-6-6 01:37:29 | 显示全部楼层
这句话“left operand must be l-value”说的多好!左操作数必须是左值!左值(l-value):出现于“=”左边的标识符。(为变量)右值(r-value):出现于“=”右边的标识符。(变量或表达式)表达式:产生确定不变的值。类似于a1x^n + a2x^n-1 +...+ an多项式(n>=1) 问题原因:*p...
回复

使用道具 举报

千问 | 2019-6-6 01:37:29 | 显示全部楼层
错误提示很明确,左操作数必须是个左值。iMul-IMUL得到的是一个临时变量是一个右值,你不能对一个右值进行复制。PS:看是不是左值我的观点是看他能不能直接取到地址,iMul-IMUL显然你取不到。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行