Тема № 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).
Скобки в качестве операций
Круглые и квадратные скобки играют роль бинарных операций при вызове функций и индексировании элементов массивов.
Круглые скобки обязательны в обращении к функции:
<имя функции> (<список аргументов>)
где операндами служат <имя функции> и <список аргументов>.
Квадратные скобки используются в выражении
<имя массива> [<индекс>]
здесь операнды – <имя массива> и <индекс>.
Дата добавления: 2016-04-14; просмотров: 694;