Инкремент и декремент в Си и С++

355 прочитали

Не хочу быть “Капитаном Очевидность”, но буду ))) Поскольку я делюсь опытом, в основном, с начинающими программистами (бывалые сами разберутся). Ну а начинающие на то и начинающие - они могут не знать простых вещей.

Часто в программах приходится увеличивать или уменьшать значения переменных на единицу. Почти во всех языках программирования это будет выглядеть примерно так:

int x = 100;
x = x + 1; //Увеличили х на 1 (х == 101)
x = x - 1; //Уменьшили х на 1 (х == 100)

Однако в языках С и С++ (и некоторых других) это можно сделать проще:

x++; //Увеличили х на 1
x--; //Уменьшили х на 1

Кроме того, что исходный код при таком способе становится меньше, ещё и в исполняемом файле реализация х++ машинном коде будет короче, чем х = х + 1 (ну во всяком случае так говорят). Сам я не проверял, но так говорят. Впрочем, также говорят, что современные компиляторы достаточно хорошо умеют оптимизировать код и, скорее всего, превращают и тот и другой вариант в один и тот же набор машинных кодов.

Наиболее часто такая запись используется в цикле for, а также в других видах циклов.

Ну и также скажу, что операторы инкремента и декремента могут использоваться как после переменной (постфиксный вариант), так и перед (префиксный вариант), то есть так:

++х;

В чём отличие - см. здесь, ну или на картинке:

Этот код, кстати, на чистом С
Этот код, кстати, на чистом С

На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.