non-lvalue in assignment是什么意思?该怎么解决?讲的通俗一点,什么左值的不懂

考古的ii2022-10-04 11:39:541条回答

已提交,审核后显示!提交回复

共1条回复
此处无情 共回答了12个问题 | 采纳率100%
左值是赋值运算(“=”操作)中的概念,比如
int a = 10;//a就是左值,需要a是一个变量
而你不能写成
10 = a;//错误,10是常量,不能做左值
同理,如果定义了常量类型,如
const int a = 10;
a = 20;//错误,a是常量,不能做左值
另外,表达式也不能作为左值出现,比如
int a = 10;
int b = 20;
a + b = 40;//错误,即使表达式里全部包含变量也不能作为左值,至于原因,你可以这样理解,就像分10元钱给张三和李四,如何分是不确定的.当然这只是个例子,你还可以有别的解释
a + 10 = 50;//错误
总结起来就是,左值是可以对其进行赋值的对象
1年前

相关推荐

non-lvalue in assignment是什么意思
火宝1年前2
戴哥 共回答了19个问题 | 采纳率89.5%
这是在 C语言编程时 出现的错误提示
non-lvalue in assignment
译文:赋值中无左值
意思是:在该程序指令中没有左值,因为左值是对象的地址.类型的引用参数
只能接受本类型对象的左值.无左值是不允许的,所以出现该错误提示.
non-lvalue in assignment
non-lvalue in assignment
class car {
int money;
int ddd;
public:
car(int x){ddd=x;}
void monet_x(int dddd){
x05x05 money=dddd;
}
x05 int dd(){return ddd;}
void print (){
cout
无用的xx1年前1
林英 共回答了22个问题 | 采纳率95.5%
dd()是d 里面的一个方法,也就是个函数,不能被赋值.赋值语句的左面只能是变量.
代码24行出现 non-lvalue in assignment
代码24行出现 non-lvalue in assignment
#include
#define IS(x)x%100!=0&&x%4=0||x%400=0?1:0
int dayofmonth[13][2]={
0,0,
31,31,
28,29,
31,31,
30,30,
31,31,
30,30,
31,31,
31,31,
30,30,
31,31,
30,30,
31,31,
};
struct Date {
int year;
int month;
int day;
void nextday(){
day++;
if(day>dayofmonth[month][IS(year)]){ // 该行错误
day=1;
month++;
if(month>12){
month=1;
year++;
}
}
}
};
int buf[4000][13][32];
int abs(int x){
return x>0?-x:x;
}
int main(){
int i=0;
Date tem;
tem.year=0;
tem.day=1;
tem.month=1;
while(tem.year!=4001){
buf[tem.year][tem.month][tem.day]=i;
tem.nextday();
i++;
}
int d1,d2,d3;
int d4,d5,d6;
scanf("%4d%2d%2d",d1,d2,d3);
scanf("%4d%2d%2d",d4,d5,d6);
printf("%d",abs(buf[d4][d5][d6]-buf[d1][d2][d3])+1);
return 0;
}
ty0nline1年前1
Andrew-xp2005 共回答了16个问题 | 采纳率87.5%
典型的新手错误
C语言中判断两个变量是否相等不是用"=",要用"=="
把代码第二行改成:#define IS(x)x%100!=0&&x%4==0||x%400==0?1:0
编译就通过了
lvalue required in fuction
fuxinnihao1年前1
Maldini01 共回答了16个问题 | 采纳率100%
在计算机程序里,在赋值语句里,左边需要一个变量 lvalue.在C,C++,或者Java中,fuction main 是程序的起始点.在C里,如果你写 x+y = 5,你会得到上面的一句话.