Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР2 - Алгоритмы линейн, ветвящ и циклы в С.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
158 Кб
Скачать
☆

Операторы присваивания и отношения

Для работы с логическими переменными в языке программирования С определены логические операции (! – логическое НЕ, && – логическое И , || – логическое ИЛИ) и операции отношения.

Результатом логической операции является либо 0 (ЛОЖЬ), либо 1 (вообще говоря любое значение не равное 0) (ИСТИНА). Так как в языке программирования С нет логических переменных, то тип результата – int.

Таблица истинности для логических операций с операндами А и В.

А

В

!A

!B

A&&B

A || B

1

1

0

0

1

1

1

0

0

1

0

1

0

1

1

0

0

1

0

0

1

1

0

0

Операции отношения сравнивают первый операнд со вторым и вырабатывают значение 1 (ИСТИНА) или 0 (ЛОЖЬ). Результат имеет тип int.

Различают следующие операторы отношения:

<

Первый операнд меньше, чем второй операнд

>

Первый операнд больше, чем второй операнд

<=

Первый операнд меньше или равен второму операнду

>=

Первый операнд больше или равен второму операнду

= =

Первый операнд равен второму операнду

! =

Первый операнд не равен второму операнду

Операнды операций отношения (как и операнды логических операций) могут иметь целый тип, тип чисел с плавающей точкой, либо быть указателями. Типы первого и второго операндов могут различаться. Над ними выполняются преобразования по умолчанию.(Над операндами логических операций преобразования по умолчанию не производятся).

В языке программирования Си используют также поразрядные (побитовые) операции, выполняющие над разрядами своих операндов логические функции И (&), включающее ИЛИ ( | ) и исключающее ИЛИ (^ ). Операнды поразрядных операций должны иметь целый тип, но бит знака, если он есть, также участвует в операции. Над операндами выполняются преобразования по умолчанию. Тип результата определяется типом операндов после преобразования. Таблица значений для поразрядных операций

X

Y

X | Y

X & Y

X ^ Y

0

0

0

0

0

0

1

1

0

1

1

0

1

0

1

1

1

1

1

0

В языке Си имеются следующие операции присваивания:

=

Простое присваивание

* =

Умножение с присваиванием

/ =

Деление с присваиванием

% =

Остаток от деления с присваиванием

+ =

Сложение с присваиванием

- =

Вычитание с присваиванием

<< =

Сдвиг влево с присваиванием

>> =

Сдвиг вправо с присваиванием

& =

Поразрядное И с присваиванием

| =

Поразрядное включающее ИЛИ с присваиванием

^ =

Поразрядное исключающее ИЛИ с присваиванием

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

Операции инкремента (++) и декремента (--)

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