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

Тема № 2. Выражения и операции языка Унарные операции

& операция получения адреса операнда

&c_Symb – адрес размещения в памяти значения переменной c_Symb.

* операция обращения по адресу (называют еще операцией разыменования (доступ по адресу к значению того объекта, на который указывает операнд).

– унарный минус (изменяет знак арифметического операнда).

+ унарный плюс (введен для симметрии с унарным минусом).

~ побитовое отрицание 0001 1100  1110 0011

! логическое отрицание 0  1, не 0  0.

++ увеличение на единицу (инкремент или автоувеличение), существует две формы:

префиксная – увеличение до использования

постфиксная – увеличение после использования

–– уменьшение на единицу (декремент или автоуменьшение), также префиксная и постфиксная формы.

sizeof операция вычисления размера операнда (в байтах)

Бинарные операции

Делятся на следующие группы:

  • аддитивные и мультипликативные

  • сдвигов

  • поразрядные

  • операции отношений

  • логические

  • выбора компонента сложного объекта

  • операция «запятая»

  • скобки в качестве операций.

Аддитивные и мультипликативные

+

бинарный плюс - сложение арифметических операндов или

сложение указателя с целым

бинарный минус - вычитание арифметических операндов или

вычитание указателей

*

умножение операндов арифметического типа

/

деление операндов арифметического типа. При целочисленных операндах абсолютное значение результата округляется до целого.

%

получение остатка от деления целочисленных операндов (деление по модулю). Знак остатка равен знаку делимого.

Операции сдвига

Эти операции определены только для целочисленных операндов.

<< сдвиг влево битового представления левого операнда на число позиций равное значению правого операнда.

>> сдвиг вправо битового представления левого операнда на число позиций равное значению правого операнда.

Поразрядные операции

Выполняются над битовыми представлениями значений целочисленных операндов

&

поразрядная конъюнкция (И)

0&0 = 0

1&0 = 0

0&1 = 0

1&1 = 1

|

поразрядная дизъюнкция (ИЛИ)

0|0 = 0

1|0 = 1

0|1 = 1

1|1 = 1

^

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

0^0 = 0

1^0 = 1

0^1 = 1

1^1 = 0

Операции отношений (сравнения)

Выполняются над арифметическими операндами или указателями

<

меньше, чем

>

больше, чем

<=

меньше или равно, чем

>=

больше или равно, чем

==

равно

!=

не равно

Результат операции целочисленный: 0 (ложь) или 1 (истина).

Логические операции

Выполняются над арифметическими операндами или отношениями

&&

конъюнкция (И)

||

дизъюнкция (ИЛИ)

Результат 0 (ложь) или 1 (истина).

Операции присваивания

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

Существует одна простая операция присваивания и ряд составных.

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

А = B*2; – присвоить переменной А результат вычисления выражения B*2.

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

X = XY; – то же в записи составного присваивания: X =Y;

В качестве символа  могут быть использованы знаки операций:

+ – * / % << >> & | ^

Операции выбора компонентов структурированного объекта

Существует две операции (. и ->)

Запятая в качестве операции

Несколько выражений, разделенных запятыми, вычисляются последовательно слева направо. В качестве результата сохраняются тип и значение самого правого выражения.

int x,y; y = (x=3, 3*x); (после операции х=3, y=9).

Скобки в качестве операций

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

Круглые скобки обязательны в обращении к функции:

<имя функции> (<список аргументов>)

где операндами служат <имя функции> и <список аргументов>.

Квадратные скобки используются в выражении

<имя массива> [<индекс>]

здесь операнды – <имя массива> и <индекс>.