Операторы в C и C++

Язык C

C# предоставляет множество операторов. Большинство из них поддерживаются встроенными типами и позволяют осуществлять базовые операции со значением данных типов.

Эти операторы входят в следующие группы:

  1. Арифметические операторы (отвечают за выполнение арифметических операций).
  2. Операторы сравнения (выполняют сравнение числовых операндов).
  3. Логические (отвечают за логические операции с операндами bool).
  4. Операторы равенства (проверяют неравенство или равенство своих операндов).
  5. Операторы сдвига и битовые операторы (выполняют операции сдвига или битовые операции с операндами целочисленных типов).

Обычно можно выполнить перегрузку данных операторов. Другими словами, вы можете указать поведение оператора для операндов типа, определяемого пользователем.

Простейшие выражения C# — литералы (к примеру, реальные и целые числа) и имена переменных. С помощью операторов их можно объединить в сложные выражения.

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

Арифметические операторы

Существуют следующие арифметические операторы, поддерживаемые языком C ++:

Описание Оператор Пример
Плюсует два операнда + A + B даст 30
Второй операнд вычисляется с первого A — B даст -10
Умножает операнды * A * B даст 200
Делит числитель на де-числитель / B / A даст 2
Оператор модуля и остаток после целочисленного деления % B% A даст 0
Оператор приращения увеличивает целочисленное значение на единицу ++ A ++ даст 11
Уменьшает целочисленное значение на единицу A— даст 9

Реляционные операторы

Язык C++ поддерживает регулярные операторы, перечисленные в таблице:

Описание Оператор Пример
Проверяет, равны ли значения операндов, если равны, то условие становится истинным. == (A == B) не соответствует действительности.
Равны ли значения операндов, если нет, условие становится истинным. знак равно (A! = B) истинно.
Превышает ли значение левого операнда значение правого, если превышает, то условие становится истинным. > (A> B) неверно.
Является ли значение левого операнда меньше значения правого, если да –условие становится истинным. < (A <B) истинно.
Превышает ли значение левого операнда значение правого, если да, то условие становится истинным. > = (A> = B) неверно.
Проверяет, является ли значение левого операнда меньше или равно значению правильного операнда, если да, тога условие становится истинным. <= (A <= B) истинно.

Логические операторы

С++ поддерживает следующие логические операторы:

Описание Оператор Пример
Вызывается логическим оператором AND. Если операнды отличны от нуля,тога условие становится истинным. && (A && B) являетсяложным.
Вызывается логическим оператором ИЛИ. Если один из двух операндов отличен от нуля, тога условие становится истинным. || (A || B) истинно.
Вызывается оператором NOT. Применяется для изменения логического состояния операнда. Если условие истинно, тога логический оператор NOT сделает ложным. ! ! (A && B) истинно.

Побитовые операторы

Такие операторы работают с битами и выполняют побито вую операцию. Приведем таблицу истинности для &, |, и ^:

q p | q p p & q p ^ q
0 0 0 0 0
1 1 0 0 1
1 1 1 1 0
0 1 1 0 1

Теперь перечислим побитовые операторы, поддерживаемые языком C ++:

Описание Оператор Пример
Двоичный оператор AND копирует бит в результат, если он присутствует в обоих операндах. & (A & B) даст 12, что= 0000 1100
Двоичный оператор OR копирует бит, если он есть в любом из операндов. | (A | B) даст 61, который = 0011 1101
Оператор двоичного XOR копирует бит, если он указан в один операнд, но не тот и другой. ^ (A ^ B) даст 49, который = 0011 0001
Binary Ones. Унарный оператор дополнения имеет эффект «flipping» бит. ~ (~ A) даст -61, что = 1100 0011 в форме дополнения 2 из-за подписанного двоичного числа.
Двойной левый оператор сдвига. Значение левах операндов перемещается влево на то количество бит, которые были заданны правым операндом. << A << 2 даст 240, что = 1111 0000
Двоичный оператор правого сдвига. Значение левах операндов перемещается вправо на то количество бит, которые были заданны правым операндом. >> A >> 2 даст 15, что = 0000 1111

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

Существуют следующие операторы присваивания, поддерживаемые языком C ++:

Описание Оператор Пример
Простой оператор присваивания, который присваивает значения из правых операндов в левый. = C = A + B присваивает значение A + B в C
Оператор Add AND присваивания, который добавляет правый операнд в левый и присваивает ему результат. + = C + = A эквивалентно C = C + A
Subtract AND assignoperator. Он вычитает правый операнд из левого, и присваивает ему результат. = C — = A эквивалентно C = C — A
Оператор умножения и присваивания, который умножает правый операнд на левый, и присваивает тому результат. = C * = A эквивалентно C = C * A
Оператор Divide AND assign. Он дельт левый операнд на правый, и присваивает результат. = C / = A эквивалентно C = C / A
Модуль и оператор присваивания, который принимает модуль с использованием двух операндов и присваивает результат левому операнду. = C% = A эквивалентно C = C% A
Оператор сдвига слева и. << = C << = 2 совпадает с C = C << 2
Оператор правой смещения и назначения. >> = C >> = 2 совпадает с C = C >> 2
Побитовый И оператор присваивания. = C & = 2 является таким же, как C = C & 2
Побитовое исключающее ИЛИ и оператор присваивания. ^ = C ^ = 2 является таким же, как C = C ^ 2
Побитовое включение оператора OR и присваивания. | = C | = 2 совпадает с C = C |2

Другие операторы

Приведем и другие операторы, которые поддерживает С ++:

Описание Оператор
Оператор возвращает раз мер переменной. К примеру, sizeof (a), где ‘a’ — целое число и будет возвращать 4. sizeof
Если условие истинно, то оно возвращает значение X, в противном случае возвращает значение Y. Condition ? X : Y
Оператор вызывает последовательность операций. Значение всего выражения запятой – это значение последнего выражения списка, который разделен запятыми. ,
Применяются для ссылки на отдельных членов классов, союзов и структур. . (dot) and -> (arrow)
Преобразуют один тип данных в другой. К примеру, int (2.2000) вернет 2. Cast
Оператор возвращает адрес переменной. К примеру, & a; даст переменной фактический адрес. &
Указатель на переменную. К примеру, * var; будет указывать на переменную var. *

Приоритеты операторов в C ++

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

В таблице приведены операторы с самым высоким приоритетом (чем выше, тем приоритетнее):

Оператор  Категория  Ассоциативность 
() [] ->. ++ — — постфикс Слева направо
+ -! ~ ++ — — (тип) * &sizeof Одинарный Справа налево
* /% Multiplicative Слева направо
+ — присадка Слева направо
<<>> сдвиг Слева направо
<<=>> = реляционный Слева направо
==! = равенство Слева направо
& Побитовое AND Слева направо
^ Побитовое XOR Слева направо
| Побитовое OR Слева направо
&& Логические AND Слева направо
|| Логический OR Слева направо
?: условный Справа налево
= + = — = * = / =% = >> = << = & = ^ = | = присваивание Справа налево
, запятая Слева направо

Насколько сложной показалась вам эта тема? Напишите ответ в комментариях.

Оцените статью
Образовательный портал WELCOME4U.RU
Добавить комментарий

Adblock
detector