Неправильная сумма постфиксного инкремента

Почему итог равен 8?

int inkrement = 5;
inkrement = inkrement + 1;
cout << inkrement << "\n";

inkrement++; // inkrement
cout << inkrement << "\n"; // = 7

inkrement--; // - 1 = 6
cout << inkrement << endl;

cout << inkrement++ << endl; // = 6
cout << "Итог:" << ++inkrement << endl; // = 7

Ответы (1 шт):

Автор решения: Harry
int inkrement = 5;

inkrement = inkrement + 1;

Теперь значение 6.

cout << inkrement << "\n";

inkrement++; // inkrement

Теперь хранящееся значение 7, его и выводим...

cout << inkrement << "\n"; // = 7

inkrement--; // - 1 = 6

Теперь хранящееся значение опять 6, его и выводим...

cout << inkrement << endl;

Далее хранящееся значение становится 7, но значение выражения с постфиксным инкрементом - это значение до инкремента, выводит 6.

cout << inkrement++ << endl; // = 6

В последней строке хранящееся значение сначала увеличивается (префиксный!), становится 8, и потом выводится.

cout << "Итог:" << ++inkrement << endl; // = 7

Итак, 6 7 6 6 8...

→ Ссылка