ReAl (08.01.2007 15:28, просмотров: 1) ответил LordN на а с каких оно ошибочное?
Есть разница между ++i и i++ ++(++i) это одно, ++(i++) - другое. По крайней мере по стандартам C99 и C++ ISO/IEC 14882 first edition 1998 года (кстати, свежее для C++ было что-то? а где брать?).
префиксные ++ и -- возвращают LVALUE и к ним опять можно применять ++, а вот постфиксные - возвращают RVALUE, к которому уже такого не приложить.
Образно говоря, ++i возвращает "переменную i, увеличенную на 1", а вот i++ возвращает "значение переменной i до того, как её увеличили на 1". Если к переменной можно далее приложить ++, то к значению - только +1, которое не пытается записать результат увеличения назад в значение (а не в переменную).
И тут имеющиеся у меня кейл 6.20, какой-то не сильно свежий IAR/AVR, Борланд 5.02 и gcc единодушны в своих "not an lvalue", "modifiable lvalue required" и т.п.
Просто строки из стандарта человек "не поймёт", а "компилятор против компилятора" это не разговор.