Привет всем!
У меня возник вопрос — почему-то VS мне на попытку скомпилить такой код:
int i = 10;
++i++;
выдает сообщение об ошибке:
error C2105: '++' needs l-value
Вопрос в том, ПОЧЕМУ?
Я знаю, что
префиксный ++ принимает l-value и возвращает l-value
постфиксный ++ принимает l-value и возвращает r-value
Так получается, что компилятор считает, что первым выполняется постфиксный, получается... Так что ли? Откуда еще могло взяться r-value?
НО! Я то думала, что первым должен выполниться префиксный. Кстати, вот
здесь есть приоритет операций, где префиксный ++ стоит вообще первым по приоритету, а постфиксный — последним.
Может мне кто-нить объяснить, что за хрень в этом выражении происходит?
Заранее спасибо.