你这条语句出错了,p.getFirst()=temp1、p.getSecond()=temp2; p.getSecond()返回的是一个临时变量,并不能存储temp2的拷贝。顺便举个例子,左值相当于汇编的 mov ax, 3; 在逗号左边的叫左值。由于左值是临时变量,不是能存储对象的地方,所以编译出错。
简单点说,等号左边的值必须是可以赋值的值 你这里应该用 classone[i].set_age(data2)如果你有set_age函数的话
fib(n)=1;这里错了。不能给函数赋值。
stud[i].Sum()=stud[j].Sum();这句是错的,你的stud[i].Sum()这是一个函数,虽然有一个返回值,但是,你的stud[ij].Sum()这个也是一个函数,但是你这个的返回值想把它赋给一个函数的返回值,你说这个可能吗?你有一块内存可以吗?所以说是错的 你可以再加类里添加一个成员 float sum;在Sum...
由于你定义了typedef int ElemType[N];所以 typedef struct{ ElemType data;int cur;} 中的data是数组。数组不能直接赋值,需要使用循环或者memcpy。所以这句space[i].data=b;修改为:memcpy(space[i].data,b,sizeof(b)*N);修改后还是无法运行,只是解决编译问题。你还有其它运行错误。
这个只是一个错误消息,你双击这行就可以到达错误的位置。错误类型:“operator”: 左操作数必须为左值 该运算符必须将左值作为其左操作数。比如给常量赋值:1 = a;
意思就是等号左边不是变量,是表达式。如:a+b=2; //a+b是表达式,不是变量,这在C中不允许。
字符串数组不能用=来赋值
//#include "stdafx.h"#include <string.h>#include <stdio.h>#define N 10typedef struct ss {char num[10];int score;}STU;void fun(STU x[],STU *y) {int i;*y = x[0]; // 结构变量可以直接赋值for(i = 1 ;i < N; i++) {if(x[i].score < y->score)*y = x[i]...
error C2106: '=' : left operand must be l-value的意思是做操作数的值必须为长整型整数。*p[100]是设一个指针,指向的是可以存放100个数的数组,p[i]就是指向第i个可以存放100个数的数组,不是指向长整型整数。定义的时候直接定义为p[100]就行了 ...