我在ubuntu版的eclipse中输入
#include<stdio.h>
void mian()
{
int i,j,k;
char a,b,c;
printf("输入i,j,k");
scanf("%d,%d,%d",&i,&j,&k);
a=i+32;b=j+32;c+k=32; //报错:赋值运算符的左操作数必须是左值
printf("i=%d,j=%d,k=%d\n",i,j,k);
printf("i=%c,j=%c,k=%c\n");
printf("a=%c,b=%c,c=%c\n",a,b,c);
}
不好意识,打错了,但是ubuntu下这个错误怎么解决,eclipse犹如下提示:
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crt1.o:在函数‘_start’中:
(.text+0x20):对‘main’未定义的引用
collect2: 错误: ld 返回 1
make: *** [c++] 错误 1
你发一下现在的完整程序给我看看,还有保存源文件跟编译的过程没问题吧?
追问几乎没变,除了那个打错了的地方;
错误:../les+1.cpp:8:11: 错误: ‘::main’必须返回‘int’
../les+1.cpp: 在函数‘int main()’中:
我就是问你你把c+k=32换成什么了?
干脆你整个代码拷出来贴出来吧,搞不好有些什么地方你没注意的又错了
字数超过限制无法完全发过来,谢谢了。我发现64bit的ubuntu是我没配置好eclipse或者是软件兼容有问题。每次重启软件在调试就有不同的问题。总之谢谢了哦
追答不客气
本回答被网友采纳eclipse的C语言问题 报错:赋值运算符的左操作数必须是左值
左值就是在赋值中可以放在赋值操作符两边的值,比如: int a = 1; double b = 2.0 a = b; b = a; 这里a和b都是左值, 你那个c+k = 32不能写成 32=c+k 因为32是常量,所以这个不是左值
C语言提示left operand must be l-value
解释:赋值号(‘=’)左边的操作数必须是一个左值。通俗的说:左值就是可以改变的值的变量。发生这个错误的原因是你把常量(或不可改变值的变量)放到了赋值号的左边。例如:int a[3];a++;\/\/这里就相当于a=a+1;注意a是数组a[3]的首地址,在声明a[3]后,将开辟一段连续内存空间。就是这段...
C语言语法问题,左操作数必须为左值是什么意思啊?我该怎么改啊?_百度知 ...
所谓左值是指一个能用于赋值运算左边的表达式。左值必须能够被修改,不能是常量。我们用变量作左值,还可以看到,指针和引用也可以作左值。改成b=9-c。一般形式为:变量=表达式。它的作用是将一个表达式的值赋给一个左值。计算赋值运算符右侧表达式的值(“=”为赋值运算符),将赋值运算符右侧表达式的...
c语言left operand must be l-value该怎么解决
解释:赋值号(‘=’)左边的操作数必须是一个左值。通俗的说:左值就是可以改变的值的变量。发生这个错误的原因是你把常量(或不可改变值的变量)放到了赋值号的左边。例如:int a[3];a++;\/\/这里就相当于a=a+1;注意a是数组a[3]的首地址,在声明a[3]后,将开辟一段连续内存空间。就是这段...
C语言错误:left operand must be l-value
error C2106: '=' :left operand must be l-value 表示等号左边必须为一个左值,该处错误为等号左边为*p+i\\j是表达式,不是一个左值。问题分析 C语言的符号优先级表格(部分)如下表:由该表格可知取值符 * 运算优先级高于加法运算符 +,因此 *p+i 和 *p+j 的运算均为先取值再加上变量,结果...
error C2106: “=”: 左操作数必须为左值
x[],STU *y) {int i;*y = x[0]; \/\/ 结构变量可以直接赋值for(i = 1 ;i < N; i++) {if(x[i].score < y->score)*y = x[i];}}int main() {STU students[N]={{"A01",81},{"A02",89},{"A03",66},{"A04",87},{"A05",77},{"A06",90},{"A07",79},...
c语言 error c2106 :"=":左操作数必须为左值
仔细查一下 , 等号左边放的不是变量 是不是 == 写成 = 了
C语言,指针变量m很奇怪,报错提示左操作数必须为左值
float *m (float (*pointer)[4],int n);你这样定义的不是函数指针,而是一个返回值是指针的函数 这么写定义的m才是函数指针 float (*m) (float (*pointer)[4],int n);
左操作数必须为左值,交换两个数组的值报错
也就是不能做左值。此处你需要做的是交换几个字符串,比如players[0]这个代表着第0行的字符串的首地址 那么整个字符串内容就分别是players[0][0],players[0][1],players[0][2]依次下去 所以,此处的操作应改为 t应该定义为char t[10];strcpy(t,players[i]);strcpy(players[i],players[a])...
c语言什么叫需要左值作为赋值左操作数?
左值就是可以被修改的值 你把==错误的写成了=,所以错了,这是逻辑比较,不是赋值,赋值是单等于,比较是双等于