Я пытался понять, как работает post и pre increments в последнее время, и я слишком много думал об этом.
«Продукт» становится 25 после одной итерации?
Product *=5++
И становится ли «Коэффициент» 5/6 после одной итерации?
Quotient /= ++x
Заранее спасибо.
5++
это просто неверно.
Quotient /= ++x;
такой же как x = x + 1; Quotient = Quotient / x;
(при условии, что это просто числа).
Ваш код не является допустимым C ++, так как встроенный оператор постинкремента может применяться только к lvalues, но литеральные целые числа являются rvalue.
Кроме того, значением (встроенного) выражения перед инкрементом является увеличенное значение, в то время как значение выражения после приращения является исходным значением.
Предварительное увеличение изменяет переменную и приводит к измененному значению.
Постинкремент оценивает значение переменной, а затем увеличивает переменную.
int a = 5;
int b = ++a; // a = a + 1; b = a
int c = a++; // c = a; a = a + 1
Рассмотрим эти простые реализации ++ для int
int& int::preincrement()
{
this->m_value += 1;
return *this;
}
int int::postincrement()
{
int before = this->m_value;
this->m_value += 1;
return before;
}