Счетчики используют настолько часто, что в языке Си существуют специальные операторы инкремента и декремента переменной. Оператор ++variable увеличивает значение переменной на единицу еще до выполнения соответствующей инструкции. Оператор выполняет то же действие, что и инструкция
variable = variable + 1;В качестве примера действия оператора инкремента, рассмотрим следующую программу:
/*count.c*/main(){int count = 0;printf("Первое значение переменной \ count равно %d", count);printf("Второе значение переменной \ count равно %d", ++count);printf("Последним значением переменной \ count является %d", count);}Результат работы программы отображается в виде сообщений:
Первое значение переменной count равно 0Второе значение переменной count равно 1Последним значением переменной count является 1Перед выполнением второй функции printf() компилятор увеличивает значение переменной count на 1. Тот же эффект был бы достигнут и при использовании инструкции
count = count + 1;printf("Второе значение переменной count равно %d\n", count);Использование оператора инкремента позволяет увеличить значение переменной без введения в текст программы отдельной инструкции присваивания.
Необходимо помнить, что оператор инкремента реально изменяет значение переменной. Проверьте, понимаете ли вы разницу между оператором инкремента ++count и выражением, приведенным в следующей строке:
printf("Второе значение переменной count равно %d\n", count+1);Выражение count+1 не изменяет значения, присвоенного переменной count. В результате выполнения этой инструкции значение переменной, увеличенное на единицу, только отображается на экране, но не заносится в память. Пример программы, в которой используются выражения вместо операторов инкремента, приведен в Листинге 6.