Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1_лекция_Основы_языка_С.doc
Скачиваний:
20
Добавлен:
05.06.2015
Размер:
395.78 Кб
Скачать

Множественные присваивания

В одном операторе присваивания можно присвоить одно и то же значение многим переменным. Для этого используется оператор множественного присваивания,

например:

x = y = z = 0;

Следует отметить, что в практике программирования этот прием используется очень часто.

Арифметические операции

В табл. 2.4 приведены арифметические операции С. Операции +, —, * и / работают так же, как и в большинстве других языков программирования. Их можно применять почти ко всем встроенным типам данных. Если операция / применяется к целому или символьному типам, то остаток от деления отбрасывается. Например, результатом операции 5/2 является 2.

Оператор

Операция

-

Вычитание, также унарный минус

+

Сложение

*

Умножение

/

Деление

%

Остаток от деления

--

Декремент, или уменьшение

++

Инкремент, или увеличение

Таблица 2.4. Арифметические операции

Оператор деления по модулю % в Сработает так же, как и в других языках,его результатом является остаток от целочисленного деления.

Этот оператор, однако, нельзя применять к типам данных с плавающей точкой.

Операции увеличения (инкремента) и уменьшения (декремента)

В языке С есть два полезных оператора, значительно упрощающие широко распространенные операции.Это инкремент ++ и декремент --.

Оператор ++ увеличивает значение операнда на 1, а — уменьшает на 1. Иными словами,

x = x+1; можно записать как++x;

Аналогично оператор

x = x-1;равносилен оператору x--;

Как инкремент, так и декремент могут предшествовать операнду (префиксная форма) или следовать за ним (постфиксная форма).

Например

x = x+1;можно записать как в виде

++x; (префиксная форма)

так и в виде

x++;(постфиксная форма)

Однако префиксная и постфиксная формы отличаются при использовании их в выражениях.

Если оператор инкремента или декремента предшествует операнду,

то сама операция выполняется до использования результата в выражении.

Если же оператор следует за операндом,

то в выражении значение операнда используется до выполнения операции инкремента или декремента.То есть для выражения эта операция как бы не существует, она выполняется только для операнда.

Например,

x = 10;

y = ++x;

присваивает yзначение 11.

Однако если написать

x = 10;

y = x++;

то переменной yбудет присвоено значение 10.

В обоих случаях х присвоено значение 11, разница только в том, когда именно это случилось, до или после присваивания значения переменной у.

Большинство компиляторов С генерируют для инкремента и декремента очень быстрый, эффективный объектный код,значительно лучший, чем для соответствующих операторов присваивания. Поэтомувезде, где это возможно, рекомендуется использовать инкремент и декремент.

Паппас – преобразование выражений

Приоритет выполнения арифметических операторов следующий:

Наивысший ++ --

- (унарный минус)-

* / %

Наинизший + -

Операции с одинаковым приоритетом выполняются слева направо. Используя круглые скобки, можно изменить порядок вычислений. В языке С круглые скобки интерпретируются компилятором так же, как и в любом другом языке программирования: они как бы придают операции (или последовательности операций) наивысший приоритет.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]