Знаки операций

   
На этом шаге мы познакомимся с различными операциями, которые
используются в
языке программирования С++.

   
Все возможные операции делятся на две группы по числу используемых
операндов: унарные
и бинарные. Таблицы 1 и 2 содержат список операций.

Таблица 1. Унарные
операции

Обозначение
операции
Назначение
операции
& Получение адреса
операнда.
* Обращение по адресу, то есть
доступ по адресу к значению того объекта, на
который указывает операнд. Операндом должен быть адрес.
- Унарный минус - изменяет знак
арифметического операнда.
+ Унарный плюс (введен для симметрии с унарным
минусом).
~ Поразрядное инвертирование
внутреннего двоичного кода целочисленного аргумента (побитовое
отрицание).
! Логическое отрицание (логическое НЕ) значения
операнда.
Может применяться к скалярным операндам. Результат операции равен 0, если
операнд ненулевой
и 1 в противном случае. В качестве логических значений в языке С++
используют целые
числа: 0 - ложь, !0 (не нуль) - истина. Отрицанием любого ненулевого числа будет
0, а отрицанием нуля будет 1. Таким образом: !1 равно 0; ! (-5) равно 0; !0 равно
1.
++ Увеличение на единицу
(инкремент). Операция может быть префиксной
(увеличение значения операнда на 1 до его использования) и постфиксной
(увеличение значения
операнда на 1 после его использования).
-- Уменьшение на единицу
(декремент).
sizeof Вычисление размера (в байтах)
объекта того типа, который имеет операнд.
Используются два формата операции: sizeof (унарное_выражение) и
sizeof (тип).

   
Бинарные операции. Эти операции делятся на следующие группы:

  • аддитивные,
  • мультипликативные,
  • сдвигов,
  • поразрядные,
  • операции отношений,
  • логические,
  • присваивания,
  • выбора компонента структурированного объекта,
  • операции с компонентами классов,
  • операция "запятая",
  • скобки в качестве операций.

Таблица 2. Бинарные
операции

Обозначение
операции
Назначение
операции
Аддитивные операции
+ Бинарный плюс (сложение арифметических операндов или
сложение указателя с целочисленным операндом).
- Бинарный минус (вычитание арифметических операндов
или указателей).
Мультипликативные операции
* Умножение операндов арифметического типа.
/ Деление операндов арифметического типа. При
целочисленных операндах
абсолютное значение результата округляется до целого. Например: 20/3 равно
6, -20/3 равняется -6,
(-20)/3 равно -6, 20/(-3) равно –6.
% Получение остатка от деления целочисленных операндов
(деление
по модулю). При неотрицательных операндах остаток положительный. В
противном случае
остаток определяется реализацией. Например: l3%4 равняется 1, (-13) %4
равняется -1,
13%(-4) равно +1, а (-13)% (-4) равняется -1. При ненулевом делителе для
целочисленных операндов всегда
выполняется соотношение: (a/b) *b + a%b равно а.
Операции
сдвига (определены только для
целочисленных операндов). Формат выражения с операцией сдвига:
<операнд1> <операция сдвига> <операнд2>.
<< Сдвиг влево битового представления операнда1 на
количество разрядов, равное значению операнда2.
>> Сдвиг вправо битового представления операнда1 на
количество разрядов, равное значению операнда2.
Поразрядные операции
& Поразрядная конъюнкция (И) битовых
представлений значений целочисленных операндов.
| Поразрядная дизъюнкция (ИЛИ) битовых
представлений значений целочисленных операндов.
^ Поразрядное исключающее ИЛИ битовых
представлений значений целочисленных операндов.
Операции
отношения (сравнения). Тип операндов: арифметический или указатель.
Результат целочисленный: 0 (ложь), 1(истина).
< Меньше, чем.
<= Меньше или равно.
>= Больше или равно.
> Больше, чем.
== Равно.
!= Не равно.
Логические бинарные операции.
Результат: 0 (ложь) или 1 (истина).
&& Конъюнкция арифметических операндов или отношений.
|| Дизъюнкция арифметических операндов или
отношений.
Операции
присваивания
= Присвоить значение выражения-операнда из правой части
операнду
левой части, например: Р = 10.3 - 2*х;.
*= Присвоить операнду левой части произведение значений
обоих
операндов: например: P*= 2 эквивалентно Р = Р * 2;.
/= Присвоить операнду левой части частное от деления
значения левого
операнда на значение правого, например: P/=2.2-d эквивалентно Р = Р / (2.2 –
d);.
%= Присвоить операнду левой части остаток от деления
целочисленного значения
левого операнда на целочисленное значение правого операнда, например: N %=
3 эквивалентно
N = N % 3;.
+= Присвоить операнду левой части сумму значений обоих
операндов, например: A+=B эквивалентно A = A+B;.
-= Присвоить операнду левой части разность значений
левого и правого операндов, например: X-=4.3-Z эквивалентно X =
X-(4.3-Z);.
<<= Присвоить целочисленному операнду левой части
значение, полученное
сдвигом влево его битового представления на количество разрядов, равное
значению
правого целочисленного операнда: a<<=4 эквивалентно a = a<<4.
>>= Присвоить целочисленному операнду левой части
значение, полученное
сдвигом вправо его битового представления на количество разрядов, равное
значению
правого целочисленного операнда: а >>= 4 эквивалентно a =
a>>4.
&= Присвоить целочисленному операнду левой части
значение, полученное поразрядной
конъюнкцией (И) его битового представления с битовым
представлением целочисленного операнда
правой части: a &= 44 эквивалентно a = a & 44.
!= Присвоить целочисленному операнду левой части
значение, полученное
поразрядной дизъюнкцией (ИЛИ) его битового представления с
битовым представлением целочисленного
операнда правой части: a != b эквивалентно a = a!b.
^= Присвоить целочисленному операнду левой части
значение, полученное применением
поразрядной операции исключающего ИЛИ к битовым представлениям
значений обоих
операндов: z ^= х + у эквивалентно z = z ^ (х + у).
Операторы выбора
компонентов структурированного объекта
.(точка) Прямой выбор (выделение) компонента
структурированного объекта, например объединения.
Формат
операции:имя_структурированного_объекта.имя_компонента
-> Косвенный выбор (выделение) компонента
структурированного объекта, адресуемого указателем.
При использовании операции требуется, чтобы с объектом был связан
указатель. Формат
операции: имя_структурированного_объекта->имя_компонента
Операции с компонентами
классов
.* Прямое обращение к компоненту класса по имени
объекта и указателю на компонент.
->* Косвенное обращение к компоненту класса через
указатель на объект и указатель на компонент.
:: Операция указания области видимости. Имеет две
формы: бинарную и унарную. Бинарная
форма применяется для доступа к компоненту класса. Унарная операция
позволяет получить доступ к
внешней для некоторой функции именованной области памяти.
Запятая в
качестве операции
, Несколько выражений, разделенных запятыми,
вычисляются последовательно слева направо. В качестве
результата сохраняются тип и значение самого правого выражения.
Скобки в качестве
операций
( ) и [ ] Играют роль бинарных операций при вызове функций и
индексировании элементов массивов.

   

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

Предыдущий шаг
Содержание
Следующий шаг



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий