Lim уменьшается , вы, вероятно, ошиблись в другом месте. Однако --lim
не совсем равно lim = lim - 1
.
Существует два оператора для выполнения увеличения / уменьшения переменной: предварительное увеличение (или уменьшение) и последующее увеличение (или уменьшение).
++x
(пре-инк) и x++
(пост-инк) изменяют значение х на +1. Так в чем же разница?
Когда вы используете x++
в выражении, выражение будет считать, что x имеет текущее значение, и после , оценивая все соответствующим образом, увеличивая это значение на единицу. Итак ...
int x = 5;
printf("%d", x++);
... выведет 5. ОДНАКО после строки printf () значение x будет равно 6.
Предварительное увеличение работает наоборот: значение x сначала увеличивается, а затем рассматривается для вычисления выражения, его окружающего. Итак ...
int x = 5;
printf("%d", ++x);
... выведет 6 и, конечно, значение x будет 6 после этого.
Конечно, то же самое относится и к операторам декремента.
Теперь операция присваивания (x = x + 1
) оценивается как присвоенное значение после того, как присвоение произошло, поэтому ее поведение фактически аналогично ++x
, а не x++
.