错误:需要左值作为赋值的左操作数,我收到此错误啥是左值和右值以及如何删除此错误
Posted
技术标签:
【中文标题】错误:需要左值作为赋值的左操作数,我收到此错误啥是左值和右值以及如何删除此错误【英文标题】:error: lvalue required as left operand of assignment, I got this error what is lvalue and rvalue and how to remove this error错误:需要左值作为赋值的左操作数,我收到此错误什么是左值和右值以及如何删除此错误 【发布时间】:2016-07-05 05:49:28 【问题描述】:编译时我的代码中出现此错误 这是代码
#include <iostream>
using namespace std;
int main()
int l,n,w,h;
cin>>l>>n;
while(n--)
cin>>w>>h;
if(w>l||h>l)
cout<<"CROP IT"<<endl;
if(w==l&&h==l&&w=h)
cout<<"ACCEPTED"<<endl;
if(w<l||h<l)
cout<<"UPLOAD ANOTHER"<<endl;
还有错误
11:22: 错误:需要左值作为赋值的左操作数
【问题讨论】:
这是一个重复的问题。请参考:***.com/questions/19973320/… 使用空格键会更容易发现原因。 【参考方案1】:您的if(w==l&&h==l&&w=h)
可能有误。由于运算符优先级,它正在执行if((w==l&&h==l&&w)=h)
。 w==l&&h==l&&w
部分创建一个临时值。临时值总是右值,你不能给它分配h
。
我怀疑你是想写if(w==l&&h==l&&w==h)
,但实际上,最后一个w==h
有什么意义?如果w
和h
都等于l
,那么w
肯定等于h
。
【讨论】:
【参考方案2】:由于运算符优先级,(w==l && h==l && w=h)
被视为 ((w==l && h==l && w) = h)。
第一部分是右值,因此不能将其分配给h
。
你肯定想写(w==l && h==l && w==h)
。
【讨论】:
以上是关于错误:需要左值作为赋值的左操作数,我收到此错误啥是左值和右值以及如何删除此错误的主要内容,如果未能解决你的问题,请参考以下文章