C++ 错误:左值需要作为赋值的左操作数,我得到了这个错误什么是左值和右值,以及如何删除这个错误

C++ 错误:左值需要作为赋值的左操作数,我得到了这个错误什么是左值和右值,以及如何删除这个错误,c++,c,linux,C++,C,Linux,我在编译代码时遇到了这个错误 这是密码 #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;

我在编译代码时遇到了这个错误 这是密码

#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:错误:赋值的左操作数需要左值

您的ifw==l&&h==l&&w=h可能是错误的。由于运算符的优先级,它正在执行ifw==l&&h==l&&w=h。w==l&&h==l&&w部分创建一个临时值。临时变量总是右值,不能将h赋给它


我想你是想写ifw==l&&h==l&&w==h,但实际上,最后一个w==h有什么意义?如果w和h都等于l,那么w肯定等于h。

因为运算符的优先级,w==l&&h==l&&w=h被视为w==l&&h==l&&w=h。 第一部分是右值,因此不能将其分配给h


您想确定w==l&&h==l&&w==h.

这是一个重复的问题。请参阅:使用空格键将更容易发现原因。