Операторы инкремента

Счетчики используют настолько часто, что в языке Си существуют специальные операторы инкремента и декремента переменной. Оператор ++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.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: