Geany c ++,错误“左值作为赋值的左值”

时间:2015-03-27 12:21:10

标签: c++ compilation g++ geany

我尝试在geany中定义数学运算但是无法编译它们。例如,a + b = c无法编译,但另一方面a + b == c被编译但是2 + 4的结果是0,所以它不对。同样适用于a-b = d和其他基本操作。当我试图在终端中编译它时,同样的错误就是说"左值作为赋值的左操作数"。 我使用linux,openSUSE更精确。

2 个答案:

答案 0 :(得分:0)

由于你想分配,你需要这样做:

c = a + b;

==是比较运算符。它会将a+bc进行比较。

例如:

int a = 5;
int b = 5;
int c = 10;

if (a+b == c)   <---true because 10 = 10
{
    //some code
}

这是了解左旋和右值的好资料来源:

http://eli.thegreenplace.net/2011/12/15/understanding-lvalues-and-rvalues-in-c-and-c

答案 1 :(得分:0)

在一个简单的描述中...... LValue是一个可以为其赋值的变量。因此,在您的情况下,您希望将a + b的加法值赋给变量c:

c = a + b;

使用此运算符==()可以将2个值相互比较。回到你的情况 你将a + b的加法与c的值进行比较。如果“a + b”不等于“c”,则该比较返回“假”。 “false”转换为像int这样的数值数据类型,其值为0。