Неправильная сумма постфиксного инкремента
Почему итог равен 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...