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

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

   
Все возможные операции делятся на две группы по числу используемых
операндов: унарные
и бинарные. Таблицы 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 ^ (х + у).
Операторы выбора
компонентов структурированного объекта
.(точка)Прямой выбор (выделение) компонента
структурированного объекта, например объединения.
Формат
операции:имя_структурированного_объекта.имя_компонента
->Косвенный выбор (выделение) компонента
структурированного объекта, адресуемого указателем.
При использовании операции требуется, чтобы с объектом был связан
указатель. Формат
операции: имя_структурированного_объекта->имя_компонента
Операции с компонентами
классов
.*Прямое обращение к компоненту класса по имени
объекта и указателю на компонент.
->*Косвенное обращение к компоненту класса через
указатель на объект и указатель на компонент.
::Операция указания области видимости. Имеет две
формы: бинарную и унарную. Бинарная
форма применяется для доступа к компоненту класса. Унарная операция
позволяет получить доступ к
внешней для некоторой функции именованной области памяти.
Запятая в
качестве операции
,Несколько выражений, разделенных запятыми,
вычисляются последовательно слева направо. В качестве
результата сохраняются тип и значение самого правого выражения.
Скобки в качестве
операций
( ) и [ ]Играют роль бинарных операций при вызове функций и
индексировании элементов массивов.

   

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

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



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

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