++ (increment)
Оператор ++ увеличивает переменную на 1: x++ возвращает старое значение, ++x — новое. Если результат не используется, обе формы равнозначны.
Полная статья
Описание
Оператор инкремента ++ прибавляет единицу к значению переменной. Он существует в двух формах: постфиксной (x++) и префиксной (++x). Разница между ними проявляется только тогда, когда результат оператора используется в выражении — например, присваивается другой переменной или передаётся в функцию.
Синтаксис
x{plus}{plus}; // increment x by one and returns the old value of x{plus}{plus}x; // increment x by one and returns the new value of x
Параметры
x: переменная целочисленного типа. Разрешённые типы данных: int, long (в том числе беззнаковые варианты).
Возвращает
x++— возвращает старое значение переменной (до увеличения), затем увеличивает её.++x— сначала увеличивает переменную, затем возвращает новое значение.
Если результат нигде не используется (оператор стоит отдельной строкой), обе формы работают одинаково — просто прибавляют 1.
Пример кода
x = 2;
y = ++x; // x теперь содержит 3, y содержит 3
y = x++; // x содержит 4, но y всё ещё содержит 3
Где применяется
- Счётчики в циклах — классический
for (int i = 0; i < 10; i++)использует постфиксный инкремент для перебора значений. - Подсчёт событий — например, каждое нажатие кнопки увеличивает счётчик:
buttonPresses++. - Обход массива — инкремент индекса при последовательном чтении или записи элементов.
- Конечные автоматы — переход к следующему состоянию через увеличение переменной состояния.
Практические замечания
- Если вы просто хотите увеличить переменную на 1, пишите
x++или++x— разницы нет. Форма имеет значение только когда результат используется в выражении. - Будьте внимательны с переполнением: для типа
intна большинстве плат Arduino максимальное значение равно 32 767. После него следующий инкремент даст −32 768. Дляunsigned intпереполнение даёт 0. - Не применяйте
++к переменным типаfloatилиdouble— оператор для них не предназначен и может давать неожиданные результаты из-за особенностей представления чисел с плавающей точкой. - В сложных выражениях вида
a = x++ + ++xповедение может быть неочевидным. Для ясности лучше разбивать такие конструкции на отдельные строки. - Если показания счётчика кажутся неверными — проверьте, не используете ли вы постфиксную форму там, где ожидаете уже увеличенное значение.