Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Нестеров.docx
Скачиваний:
3
Добавлен:
22.09.2019
Размер:
267.49 Кб
Скачать

Вопрос 36. Операторы инкремента и декремента. Операторы присваивания

Когда мы со значением переменной производили арифметическое действие и после записывали результат в эту же переменную, то мы это писали так:       х=х+10 Язык С позволяет эту же операцию записать и по-другому: х+=10. Что меняется от такого написания? Во-первых, вам не нужно второй раз набирать имя той же переменной. Кроме того, компилятор вторые варианты написания обрабатывает немного быстрее. Такие операции называются сокращенными или составными присваиваниями. К другим арифметическим операторам мы тоже можем применить сокращенное написание.

вместо х=х-2     х-=2 вместо х=х*2     х*=2 вместо х=х/2     х/=2 вместо х=х%2     х%=2. Существуют операции присваивания с ОДНИМ оператором. Такие операции называются унарными именно потому, что имеют один операнд. От латинского слова Uno, что значит "один". Это операции инкремента и декремента (или увеличения и уменьшения). Операторы этих операций выглядят соответственно так: ++ и -- . Что же они делают? При операции увеличения значение операнда увеличивается на 1, а при операции уменьшения - уменьшается на 1. Допустим, есть переменная х. Мы хотим применить к ней операцию инкремента. Возможно, учитывая наши прошлые знания и полученные сегодня в начале урока, мы бы написали так: х=х+1  или    х+=1. Но если вы точно уверены, что переменная ваша будет изменяться в большую или меньшую сторону только на 1, лучше будет использовать инкремент или декремент соответственно. И выглядеть это будет так: х++     или    х-- Операнд может быть целого или плавающего типа. В любом случае он будет увеличиваться (уменьшаться) на единицу. Тип результата соответствует типу операнда. Cуществует две формы рассматриваемых операций: префиксная и постфиксная. Если операторы ++ или -- записаны после переменной (так, как написано выше) - это постфиксная форма. При этом последовательно происходят следующие действия:

старое значение переменной сохраняется для использования в дальнейшем выражении, в котором встретилась эта переменная;

и только ПОСЛЕ этого ее значение СРАЗУ ЖЕ изменяется на 1. Если эти  операторы записаны перед переменной, вот так: ++х     или    --х, то это префиксная форма. При этом последовательность действий такая:

СНАЧАЛА переменная изменяется на 1;

и только после этого используется в выражении. На примере будет понятнее. Рассмотрим его:       int t=1, z;       z=(t++)*5; В начале происходит умножение t*5, а затем увеличение t. В результате получится z=5, t=2.       int s=2, f;        f=(++s)/3; В начале значение s увеличивается, а затем используется в операции деления. В результате получим s=3, f=1. Обратите внимание!

Когда инкремент или декремент выполняются как совершенно отдельный от других выражений оператор, то префиксная и постфиксная форма приводят к одинаковому результату, то есть, при таком использовании нет никакой разницы, где мы пишем оператор.

Нельзя использовать в операции инкремента или декремента сложный операнд, представляющий собой выражение. Можно только простую переменную. Написать ++(у-1) будет ошибкой.