Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
http.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.34 Mб
Скачать

Операторы

С имеет множество встроенных операторов. Оператор — это символ, который сообщает компилятору о необходимости выполнения некоторых математических или логических действий. Имеется три больших класса операторов: арифметические, отношения и логические, битовые. Кроме этого, C имеет несколько специальных операторов для частных задач.

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

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

Оператор

Действие

-

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

+

Сложение

*

Умножение

/

Деление

%

 Взятие по модулю (остаток)

--

Уменьшение

++

Увеличение

 Таблица перечисляет допустимые арифметические операторы С. Операторы +, —, * и / работают в С точно так же, как и в большинстве других языков. Их можно применять практически ко всем встроенным типам данных. Когда применяется / к целому числу или символу, остаток обрубается, например: 10/3 равно 3.

Оператор взятия по модулю % работает в С так же, как в некоторых других языках. Надо помнить, что оператор взятия по модулю выдает остаток от целочисленного деления. % не может использоваться с типами float и double. Следующий фрагмент демонстрирует его использование: int х, у; х = 10; у = 3; printf("%d", x/y); /* выводит 3 */ printf ("%d", х%у); /* выводит 1 - остаток целочисленного деления */ x = 1; y = 2; printf("%d %d", х/у, х%у)/ /* выводит 0 1*/

Причина того, что последняя строка печатает 0 и 1, заключается в том, что в результате целочисленного деления 1/2 получается 0 с остатком 1. 1 % 2 выдает остаток 1.

Унарный минус фактически умножает одиночный операнд на -1, то есть число, перед которым стоит знак минус, меняет свой знак.

Увеличение и уменьшение

С предоставляет два полезных оператора, обычно отсутствующих в других языках. Это операторы уменьшения и увеличения, ++ и --. Оператор ++ добавляет 1 к операнду, а -- вычитает 1. Поэтому следующие операторы эквивалентны: х = х + 1; это то же самое, что и ++ х; Аналогично х = х - 1; это то же самое, что и --х;

Как оператор увеличения, так и оператор уменьшения могут стоять перед операндом (префиксный) или после операнда (постфиксный). Например: х = х + 1; может быть записано как ++ х; или х ++;

Тем не менее, существует разница использования префиксного и постфиксного операторов в выражениях. Когда оператор увеличения или уменьшения стоит перед операндом, С производит увеличение или уменьшение до получения значения операнда. Если оператор следует за операндом, С получает значение операнда перед его увеличением или уменьшением. Рассмотрим следующий пример: х = 10; у = ++x; В этом случае у устанавливается в значение 11. А если записать это как х = 10; у = x++; то y будет иметь значение 10. В обоих случаях х устанавливается в 11. Бывает необходимо контролировать последовательность операций увеличения или уменьшения.

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

высший

+ (унарный плюс) - (унарный минус) ++ -- * / %

низший

+ - (бинарные операторы)

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

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