Страницы

Поиск по вопросам

вторник, 8 января 2019 г.

Инкремент, декремент

добрый день, вопрос такой, почему нельзя сделать так: i++++; Но можно так: ++++i;


Ответ

разница в том, что возвращают постфиксная и префиксная формы инкремента. Префиксная возвращает ссылку на инкрементированную переменную i, а префиксная возвращает не ссылку, а значение некоторой временной переменной, в которой было сохранено предыдущее (до инкремента) значение переменной i. Выглядит это примерно так (для int) : int& operator ++(int& a);​ // префиксная форма ​int operator ++(int& a, int);​ // постфиксная форма В первом случае значение, возвращаемое оператором инкремента является lvalue, во втором - не является

Комментариев нет:

Отправить комментарий