eclipse的C语言问题 报错:赋值运算符的左操作数必须是左值

我在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);

}

左值就是在赋值中可以放在赋值操作符两边的值,比如: int a = 1; double b = 2.0 a = b; b = a; 这里a和b都是左值, 你那个c+k = 32不能写成 32=c+k 因为32是常量,所以这个不是左值
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-22
c+k=32你是想闹哪样?
c=32还是k=32都没问题
但是c+k很明显不是一个左值嘛

左值:C/C++语言中可以放在赋值符号左边的变量,即具有对应的可以由用户访问的存储单元,并且能够由用户去改变其值的量。

http://baike.baidu.com/view/836474.htm追问

不好意识,打错了,但是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或者是软件兼容有问题。每次重启软件在调试就有不同的问题。总之谢谢了哦

追答

不客气

本回答被网友采纳
相似回答