Я пытаюсь определить математические операции в geany, но он не может их скомпилировать. Например, a + b = c не может быть скомпилировано, но, с другой стороны, a + b == c скомпилировано, но результат, скажем, 2 + 4 равен 0, так что это неверно. То же самое касается a-b = d и других основных операций. Когда я попытался скомпилировать это в терминале, там была та же ошибка, говорящая «lvalue требуется как левый операнд присваивания»
Я использую Linux, openSUSE, чтобы быть более точным.
Поскольку вы хотите назначить, вам нужно сделать это следующим образом:
c = a + b;
==
является оператором сравнения. Это сравнивает a+b
с c
,
Например:
int a = 5;
int b = 5;
int c = 10;
if (a+b == c) <---true because 10 = 10
{
//some code
}
Вот хороший источник, чтобы понять о lvalue и rvalue:
http://eli.thegreenplace.net/2011/12/15/understanding-lvalues-and-rvalues-in-c-and-c
В простом описании … LValue — это переменная, которой вы можете присвоить значение. Итак, в вашем случае вы хотите присвоить значение сложения a + b переменной c:
c = a + b;
С этим оператором == () вы сравниваете 2 значения друг с другом. Вернуться к вашему делу
Вы сравниваете сложение a + b со значением c. И если «a + b» не равно «c», это сравнение возвращает «false». «false», приведенное к числовому типу данных, как int, будет иметь значение 0.