Преинкремент и Постинкремент

Я пытался понять, как работает post и pre increments в последнее время, и я слишком много думал об этом.

«Продукт» становится 25 после одной итерации?

Product *=5++

И становится ли «Коэффициент» 5/6 после одной итерации?

Quotient /= ++x

Заранее спасибо.

0

Решение

5++ это просто неверно.

Quotient /= ++x; такой же как x = x + 1; Quotient = Quotient / x; (при условии, что это просто числа).

2

Другие решения

Ваш код не является допустимым C ++, так как встроенный оператор постинкремента может применяться только к lvalues, но литеральные целые числа являются rvalue.

Кроме того, значением (встроенного) выражения перед инкрементом является увеличенное значение, в то время как значение выражения после приращения является исходным значением.

1

Предварительное увеличение изменяет переменную и приводит к измененному значению.

Постинкремент оценивает значение переменной, а затем увеличивает переменную.

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;
}
0
По вопросам рекламы [email protected]