LVALUE означает, что нет переменной, над которой должна выполняться операция.
Файлы C в основном не что иное, как текстовые файлы, которые требуют определенного форматирования, чтобы компилятор мог его понять.
Написание чего-то вроде ++Variable++ — полная ерунда для компилятора.
В основном вы можете представить ++c как:
Var += 1;
return Var;
в то время как С++:
int Buf = Var;
Var += 1;
return Buf;
Чтобы «исправить» ваш код:
void main() {
int a=1,b=5,c=3;
a = b + (++c); //Equals 5 + 4
printf("a=%d b= %d c= %d \n",a,b, ++c); //a = 9, b = 5, c = 5
}
Таким образом, вы получите желаемый результат без жалоб компилятора.
Пожалуйста, помните, что при использовании ++c или c++ в комбинированной операции порядок имеет значение. При использовании ++c в операции будет использоваться большее значение, при использовании c++ — старое значение.
Это означает:
int a, c = 5;
a = 5 + ++c; //a = 11
пока
int a, c = 5;
a = 5 + c++; //a = 10
Потому что в последнем случае c будет только «6» ПОСЛЕ того, как оно будет добавлено к 5 и сохранено в a.
person
ATaylor
schedule
11.10.2012