Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Полное руководство по операторам C++: типы, использование и лучшие практики

Оператор — символ, указывающий компилятору выполнить определённые математические или логические манипуляции. C++ богат встроенными операторами и предоставляет следующие типы:

Эта глава рассматривает каждый тип по отдельности.

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

Поддерживаемые C++ арифметические операторы (пусть A = 10, B = 20):

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

Операторы отношения

Поддерживаемые операторы отношения (A = 10, B = 20):

ОператорОписаниеПример
==Проверяет равенство значений; если да, условие истинно(A == B) ложно
!=Проверяет неравенство; если значения не равны, условие истинно(A != B) истинно
>Проверяет, больше ли левый операнд правого(A > B) ложно
<Проверяет, меньше ли левый операнд правого(A < B) истинно
>=Проверяет, больше или равно левый операнд правому(A >= B) ложно
<=Проверяет, меньше или равно левый операнд правому(A <= B) истинно

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

Поддерживаемые логические операторы (A = 1, B = 0):

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

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

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

pqp & qp | qp ^ q
00000
01011
11110
10011

Пусть A = 60, B = 13. В двоичном виде:

A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A  = 1100 0011

Побитовые операторы C++ (A = 60, B = 13):

ОператорОписаниеПример
&Побитовое И: копирует бит, если он есть в обоих операндах(A & B) = 12 (0000 1100)
|Побитовое ИЛИ: копирует бит, если он есть в любом операнде(A | B) = 61 (0011 1101)
^Побитовое ИСКЛЮЧАЮЩЕЕ ИЛИ: копирует бит, если он установлен в одном операнде, но не в обоих(A ^ B) = 49 (0011 0001)
~Побитовое дополнение (унарный): «переворачивает» биты(~A) = -61 (1100 0011 в доп. коде)
<<Сдвиг влево: значение левого операнда сдвигается влево на число бит правого операндаA << 2 = 240 (1111 0000)
>>Сдвиг вправо: значение левого операнда сдвигается вправо на число бит правого операндаA >> 2 = 15 (0000 1111)

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

Поддерживаемые операторы присваивания:

ОператорОписаниеПример
=Простое присваивание: присваивает значение правого операнда левомуC = A + B присваивает C значение A + B
+=Сложение с присваиванием: прибавляет правый операнд к левому и присваивает результат левомуC += A эквивалентно C = C + A
-=Вычитание с присваиваниемC -= A эквивалентно C = C - A
*=Умножение с присваиваниемC *= A эквивалентно C = C * A
/=Деление с присваиванием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
|=Побитовое ИЛИ с присваиваниемC |= 2 то же, что C = C | 2

Прочие операторы

Другие операторы, поддерживаемые C++:

№Оператор и описание
1

sizeof

Возвращает размер переменной. Например, sizeof(a) для int вернёт 4.

2

Условие ? X : Y

Условный оператор (?). Если условие истинно, возвращает X, иначе Y.

3

,

Оператор запятая: выполняет последовательность операций. Значение всего выражения — значение последнего выражения в списке.

4

. (точка) и -> (стрелка)

Операторы доступа к членам классов, структур и объединений.

5

Cast

Операторы приведения типов. Например, int(2.2000) вернёт 2.

6

&

Оператор адреса: возвращает адрес переменной. &a даёт адрес a.

7

*

Оператор разыменования: указатель на переменную. *var — указатель на var.

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

Приоритет определяет группировку термов в выражении и порядок вычисления. Некоторые операторы имеют более высокий приоритет; например, умножение выше сложения.

Пример: x = 7 + 3 * 2 — x получает 13, а не 20, потому что * имеет более высокий приоритет, чем +.

В таблице операторы с высшим приоритетом сверху, с низшим — снизу. В выражении операторы с более высоким приоритетом вычисляются первыми.

КатегорияОператорАссоциативность
Постфикс() [] -> . ++ --Слева направо
Унарный+ - ! ~ ++ -- (type)* & sizeofСправа налево
Мультипликативный* / %Слева направо
Аддитивный+ -Слева направо
Сдвиг<< >>Слева направо
Отношения< <= > >=Слева направо
Равенство== !=Слева направо
Побитовое И&Слева направо
Побитовое ИСКЛЮЧАЮЩЕЕ ИЛИ^Слева направо
Побитовое ИЛИ|Слева направо
Логическое И&&Слева направо
Логическое ИЛИ||Слева направо
Условный?:Справа налево
Присваивание= += -= *= /= %= >>= <<= &= ^= |=Справа налево
Запятая,Слева направо

Язык C

  1. Операторы C# — исчерпывающее руководство по операторам в C#
  2. Понимание типов данных C++: основы, модификаторы и лучшие практики
  3. Освоение операторов C++: полное руководство с практическими примерами
  4. Комментарии в C++: лучшие практики для читаемого и поддерживаемого кода
  5. Шаблоны классов в C++: практическое руководство
  6. Операторы в C: исчерпывающее руководство
  7. Мастерство операторов Python: Полное руководство
  8. Освоение операторов Java: типы, синтаксис и практические примеры
  9. Операторы в C++: типы, примеры и практические программы
  10. Операторы в C: полное руководство по арифметическим, битовым, логическим и другим операторам